java - 在 JAVA 中单击按钮打开新选项卡

标签 java jtabbedpane

我有一个 JFrame 和两个 JPanelJframe 包含 JTabbedPaneMenuBar 和一个 menuItem。当我单击 menuitem 时,一个面板将添加到 JTabbedPane 中。代码是这样的 -

private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
        NewJPanel jp = new NewJPanel();
        jTabbedPane1.add("Panel",jp);
    }

工作正常。该面板包含一个按钮。我希望在单击按钮时在 JTabbedPane 中添加一个新面板。对于按钮的 actionPerformed 方法,我有以下代码 -

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        NewJFrame1 jf = new NewJFrame1();
        jf.addPanel();
    }

addPanel是我在JFrame中定义的一个方法。 addPanel()的代码是

public void addPanel()
    {
        System.out.println("Method Called");
        NewJPanel1 jp1 = new NewJPanel1();
        jTabbedPane1.add("Panel1",jp1);
    }

但是当我单击按钮时,我收到“调用方法”。这意味着该方法正在被调用,但面板没有添加到 JTabbedPane 中。 请帮忙。

在 JFrame 中将 JTabbedPane1 公开后,我还在按钮的 actionPerformed 方法的代码中尝试了此方法-

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        NewJFrame1 jf = new NewJFrame1();
        NewJPanel1 pane = new NewJPanel1();        
        jf.jTabbedPane1.add("Panel1",pane);
    }

但这还没有添加面板。 我应该怎么办?

最佳答案

您的代码在这两行中包含错误:

NewJFrame1 jf = new NewJFrame1(); jf.addPanel();

您必须在同一个 JFrame 上工作,实际上您是在新的隐藏 JFrame 上创建面板。

我改编了你的示例并且它正在工作:

public void addPanel()
{
    System.out.println("Method Called");
    JPanel jp1 =  new JPanel();
    jTabbedPane1.add("Panel1",jp1);
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         

    this.addPanel();  

} 

关于java - 在 JAVA 中单击按钮打开新选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17425829/

相关文章:

java - 我应该从 5.0 迁移到 Java SE 6 吗?

java - 将 java.sql.Timestamp 转换为 java.util.Calendar ISO 8601 格式

java - JTabbedPane 中的选项卡不反射(reflect)按下按钮时的更改

java - 我如何获得 JtabbedPane 内的 jPanel

java - 如何在选项卡中添加关闭按钮,JTabbedPane

java - JFrame Paint() 上的 NullPointerException

java - 如何正确地将一些java swing控件放在右上角?

java - 如何显示整个 double 值?

java - JFrame从一个类到另一个类的内部框架

java - 在 swing 中添加带有默认组件的新 jpanel