java - 如何在java中单击按钮时显示组合框?

标签 java swing combobox jbutton

我正在尝试获取它,以便当按下按钮时在 java 中显示一个组合框。这是我尝试过的。

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.*;
import javax.swing.*; 
import javax.swing.border.TitledBorder;
public class main {
    public static void main(String[] args) { 
        final JFrame testFrame = new JFrame();
        testFrame.setSize(300,450);     
        testFrame.setLocation(150,250);     
        testFrame.setTitle("My frame");
        testFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
        testFrame.setResizable(true);       
        testFrame.setVisible(true); 
        testFrame.setLayout(new FlowLayout());
        final JButton testButton = new JButton("show");
        testFrame.add(testButton);


        class MyListener implements ActionListener 
         {
            public void actionPerformed(ActionEvent event) {
                JButton clickedButton = (JButton) event.getSource();
                if (clickedButton == testButton) {
                    String[] myArray = {"test","test2"};
                    JComboBox testingCom = new JComboBox(myArray);
                    testFrame.add(testingCom);
                }
            }
         }



    }

}

任何帮助将不胜感激。谢谢。

最佳答案

根据您的代码,您永远不会addActionListener到您的按钮。 在您的 ActionListener 中,每次调用 actionPerformed 时,您都会创建一个组合框的新实例,如果这就是您想要的,您可能会感兴趣是否可见。

因此您可以像这样更改代码:

      final JButton testButton = new JButton("show");
      final JComboBox combo = new JComboBox(new String[]{"test1","test2"});
      testButton.addActionListener(new ActionListener(){
              // this is anonymous class
             @Override
             public void actionPerformed(ActionEvent evt){
                  //then you know that is attached to this button
                  combo.setVisible(!combo.isVisible());
             }
      });              
      combo.setVisible(Boolean.FALSE);
      testFrame.add(testButton);
      testFrame.add(combo);

关于java - 如何在java中单击按钮时显示组合框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22597362/

相关文章:

Java swing 设置大小

javascript - 清除时的 JQuery UI 组合框事件

css - 当从 vs dev 服务器运行时,jqueryui 组合框在 ie8 上正确呈现,但当从 web 服务器运行时隐藏在另一个组合框后面

objective-c - 传递 NSAlert Sheet 内的 NSComboBox 值

java - Android 是否有与 Java 的 Desktop.getDesktop() 类似的类用于打开文件或提示用户选择应用程序关联?

java - Swing getText 不会读取用户输入

java - 如何设置鼠标监听器使其无法在另一个表中单击?

java - Intellij Idea中 'run'和 'debug'的不同程序参数

java - 使用 Java Runtime.getRuntime().exec 调用 aspell 程序的字符集问题

java - 如何使用 for-each 循环创建一个类(不是集合的后代) "compatible"?