我有一个JFrame
和两个JPanels
。 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);
}
但是当我点击按钮时,我得到了#34; Method Called"。这意味着正在调用该方法,但该面板未添加到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);
}
但这也没有增加小组。 我该怎么办?
答案 0 :(得分:1)
您的代码包含以下两行中的错误:
NewJFrame1 jf = new NewJFrame1(); jf.addPanel();
你必须处理同一个JFrame,实际上你是在一个新的隐藏JFrame上创建pannel。
我调整了你的例子,它正在运作:
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();
}
答案 1 :(得分:0)
public void createPage1() {
panel1 = new JPanel();
panel1.setLayout(null);
JLabel label1 = new JLabel("Username:");
label1.setBounds(10, 15, 150, 20);
panel1.add(label1);
JTextField field = new JTextField();
field.setBounds(10, 35, 150, 20);
panel1.add(field);
JLabel label2 = new JLabel("Password:");
label2.setBounds(10, 60, 150, 20);
panel1.add(label2);
JPasswordField fieldPass = new JPasswordField();
fieldPass.setBounds(10, 80, 150, 20);
panel1.add(fieldPass);
JButton login=new JButton("login");
login.setBounds(10, 120, 80, 25);
panel1.add(login);
login.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
panel4=new JPanel();
//panel4.setLayout(null);
panel4.add(new JLabel("welcome buddy"));
tabbedPane.addTab("Page 4", panel4);
}
});
}