private void jButton2MouseClicked(java.awt.event.MouseEvent evt) {
javax.swing.JButton jbuttonx = new javax.swing.JButton();
jbuttonx.setText("test");
jbuttonx.setName("jButtonx");
mainPanel.add(jbuttonx);
}比如我想按一下按钮,在Panel中再生成一个按钮控件,如上写该按钮不显示,请教一下该如何完善
javax.swing.JButton jbuttonx = new javax.swing.JButton();
jbuttonx.setText("test");
jbuttonx.setName("jButtonx");
mainPanel.add(jbuttonx);
}比如我想按一下按钮,在Panel中再生成一个按钮控件,如上写该按钮不显示,请教一下该如何完善
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(37, 37, 37)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
public class Test extends JFrame implements ActionListener{
public Test(){
this.setSize(200, 200);
this.setLocation(200,200);
this.setLayout(new GridLayout(3,3));
JButton btn1 = null;
btn1 = new JButton("添加按钮");
btn1.addActionListener(this);
this.getContentPane().add(btn1);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String[] args) { JFrame frame = new Test();
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
JButton btn2 = new JButton("新按钮");
this.getContentPane().add(btn2);
//为什么没有下面两句话就没有新按钮出现呢?
btn2.setVisible(false);
btn2.setVisible(true);
}
}
本来想帮楼主解决问题的 但是现在自己出问题了。我是在Eclipse中测试的。希望高手解答。
private void jButton2MouseClicked(java.awt.event.MouseEvent evt) {
javax.swing.JButton jbuttonx = new javax.swing.JButton();
jbuttonx.setText("test");
jbuttonx.setName("jButtonx");
mainPanel.add(jbuttonx);
mainPanel.revalidate();//加入这句话
}
调用revalidate()更新一下,就可以显示了
private void jButton2MouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
javax.swing.JButton jbuttonx = new javax.swing.JButton();
jbuttonx.setText("test");
jbuttonx.setName("jButtonx"); javax.swing.GroupLayout mainPanelLayouttest = new javax.swing.GroupLayout(mainPanel);
mainPanel.setLayout(mainPanelLayouttest);
mainPanelLayouttest.setHorizontalGroup(
mainPanelLayouttest.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(mainPanelLayouttest.createSequentialGroup()
.addGroup(mainPanelLayouttest.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(mainPanelLayouttest.createSequentialGroup()
.addGap(280, 280, 280)
.addComponent(jbuttonx, javax.swing.GroupLayout.PREFERRED_SIZE , 160, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(80, Short.MAX_VALUE))
); mainPanelLayouttest.setVerticalGroup(
mainPanelLayouttest.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(mainPanelLayouttest.createSequentialGroup()
.addGap(61, 61, 61)
.addComponent(jbuttonx))
);
}