質問: お世話になります。 タイトルの通り、javaの機能で印刷ダイアログを表示させる機能があるのですが、そのダイアログの中にあるプロパティボタンを非表示、または使用不可にしたいです。 ダイアログを表示する際に使用しているメソッドはServiceUI.printDialogになります。 ServiceDialogのメソッドの一覧を見てもプロパティボタンを操作するようなメソッドもなく、ボタンがprivateで宣言されていることも確認しました。 無理なら無理でかまわないのですが、出来たらどうにかしたいと思っております。 ServiceUIとServiceDialogのソースを丸ごとコピーして、そのクラスを使用するという方法も試しましたがエラーが出てダイアログが表示されませんでした。 以下実行した際のエラー文になります。 Exception in thread "AWT-EventQueue-0" java.lang.Error: Fatal: Resource for ServiceUI is broken; there is no tab.general.vkMnemonic key in resource すみませんがどなたかお力添えを頂ければと思います。
回答: ソースからボタン名の決め方などがわかるのでComponent階層を辿ってボタン名を頼りに探すという方法も使えそうですがswingにもう手が入らないであろうことを考えるとxa051さんがコメントされているようにリフレクションで直接フィールドをアクセスして求めてしまってもよいのかも知れません。その辺の判断はご自分で・・・ printDialogはダイアログを生成してshowまでやってしまうので、これをそのまま使うならボタンに対するパッチ処理は何かのイベントを契機にして行うなど若干トリッキーなことをしないといけないように思います。