3

返信ありがとう

しかし、これは私がやりたいことです:

編集可能なコンボボックスでキーを押すと自動的にjcomboboxのポップアップメニューが出て、そこに書かれているテキストを取得したいのですが、矢印ボタンのアイコンを変えたらアイコンは変わるのにポップアップメニューが表示されません」キーを押すと表示されます。

これを Windows のルック アンド フィールで実行しようとすると、問題なく動作しましたが、Synth のルック アンド フィールでは動作しませんでした。2日間検索しましたが、問題を解決できませんでした。

ドキュメント リスナを使用しようとしましたが、何も変わっていないか、正しく使用していませんでした

今回は私の問題が明確になることを願っています

JTextField editor;
.
.
.
editor = (JTextField) jComboBox1.getEditor().getEditorComponent();

\\ 

editor.addKeyListener(new KeyAdapter() {
@Override
public void keyReleased(KeyEvent e) {

    if (jComboBox1.isDisplayable())
    {
        jComboBox1.setPopupVisible(true);
    }

         System.out.println(editor.getText());
}
});

\\ change arrowbutton icon

jComboBox1.setUI(new SynthComboBoxUI() {

   @Override
   protected JButton createArrowButton() {
      JButton btn = new JButton();
      btn.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Image/error3.png")));
      return btn;
   }
});
4

1 に答える 1

4
  1. KeyListenerを使用せず、不要な文字またはDocumentListenerをフィルタリングするためにDocumentFilterを使用します

  2. JTextComponentsはDocument(派生JTextFieldまたは/JFormattedTextFieldから)を返しますJComboBoxJSpinner

  3. に保存された定義にアイコンを配置すると、JComboBOxからSynthButtonUIを派生させることでテストできます。xml fileSynt

  4. Synth L&Fから使用するNimbus

  5. カスタムルックアンドフィールを使用し、それらの一部はBasicXxxUI直接からのメソッドをオーバーライドします

于 2012-08-17T13:20:14.520 に答える