我有一个 JFrame
和两个 JPanel
。 Jframe
包含 JTabbedPane
、MenuBar
和一个 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/