簡體   English   中英

防止JComboBox的彈出菜單從Java中關閉

[英]Preventing Pop-Up Menu of JComboBox from Closing in Java

我希望防止彈出窗口關閉以響應焦點轉移。

附上一個代碼示例。 我的目標是能夠展開組合框下拉菜單,然后選擇文本字段,不要讓下拉菜單消失。 這可能嗎?

import java.awt.BorderLayout;

import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JTextField;

public class ComboBoxPopupTest
{
    public static void main( String[] args )
    {
        new ComboBoxPopupTest();
    }

    public ComboBoxPopupTest()
    {
        MyDialog dialog = new MyDialog();
        dialog.setVisible( true );
        MyComboBoxDialog window = new MyComboBoxDialog();
        window.setVisible( true );
    }


    private class MyDialog extends JDialog
    {
        public MyDialog()
        {
            setLayout( new BorderLayout() );
            JTextField textField = new JTextField("Text Field");
            textField.putClientProperty( "doNotCancelPopup", Boolean.TRUE );  // FIXME: I Don't prevent the pop-up from closing!
            add( textField, BorderLayout.CENTER );
            setSize( 400, 400 );
        }
    }

    private class MyComboBoxDialog extends JDialog
    {
        public MyComboBoxDialog()
        {
            setLayout( new BorderLayout() );
            add( new JComboBox( new String[]{"String1", "String2", "String3"} ), BorderLayout.CENTER );
            setSize( 400, 400 );
        }
    }
}

我的黑客解決方案最終是讓另一個容器完全不可聚焦。 作為一般解決方案,這是不可接受的,但我會接受它作為答案,除非有人有更好的東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM