java - 按下按钮后在另一个面板内打开另一个面板

标签 java user-interface jpanel action panel

我一直收到一条错误消息,说我没有添加一些方法(执行的操作),但我已经添加了。我在打开面板 2 时遇到问题。

public class panel1 extends JPanel implements ActionListener(){
    private panel2 p2=new panel2();
    private JButton button;

    public panel1(){
    button=new JButton("open panel2");
    add(button,BorderLayout.BEFORE_FIRST_LINE);
    button.addActionListener(new ActionListener(){
        @Override
        public void actionPerformed(ActionEvent ae) {

            add(p2);

        }

    });

  }

最佳答案

考虑这些变化:

public class panel1 extends JPanel implements ActionListener(){
    private panel2 p2=new panel2();
    private JButton button;

    public panel1(){
    button=new JButton("open panel2");
    add(button,BorderLayout.BEFORE_FIRST_LINE);
    button.addActionListener(new ActionListener(){
        @Override
        public void actionPerformed(ActionEvent ae) {
            //Add readability: Where to add?
            panel1.this.add(p2);
        }

    });

  }

  //THIS HERE makes your panel1 implment ActionListener
  @Override
  public void actionPerformed(ActionEvent ae) {

  }
}

另请注意常见的 Java 命名约定 - 类名应以大写字母开头(Panel1 extends JPanel)

关于java - 按下按钮后在另一个面板内打开另一个面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34101440/

相关文章:

java - Android 如何查看我的 SQLite?

java - 如何将文本附加到另一个类的 JTextArea?

java - 嵌套的 JScrollPane 不适合

java - 将 JLabel 定位在角落

Java - 反射获取方法的通用类型

java - 使用 H2 数据库进行 JUNIT 测试时出现错误 "expected identifier"

java - stax xml 与 getname 函数混淆

user-interface - wxpython 使用 time.sleep() 不阻塞完整的 GUI

html - 如果列数超过 3,则在 Angular js 中使用 ng-repeat 动态添加一行

java - JAVA GUI 应用程序中的 jPanel 颜色未改变