PANEL(a和b),我想一点a中的按钮,b中就增加一个按钮
----------
那么你必须在a中的按钮点击事件中得到面版对象b,然后用b.add(button)方法来添加

解决方案 »

  1.   

    我的确是这样做的 ,但是this.setBackground(SystemColor.info);是有效的 
    背景的颜色变了,但是没有增加按钮。
      

  2.   

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;public class TwoPanels extends JFrame {
      JPanel pnlA = new JPanel();
      JPanel pnlB = new JPanel();
      JPanel pnlC = new JPanel();  JLabel jLabel1 = new JLabel();
      JButton jButton1 = new JButton();
      JButton jButton2 = new JButton();
      JButton jButton3 = new JButton();
      public TwoPanels() {
        try {
          jbInit();
        }
        catch (Exception e) {
          e.printStackTrace();
        }  }  public static void main(String[] args) {
        TwoPanels tp=new TwoPanels();
        tp.setVisible(true);
      }  private void jbInit() throws Exception {
        JPanel rootPanel = (JPanel)this.getContentPane();
    this.setSize(400,300);
        jButton1.setText("Add Into A");
        jButton1.addActionListener(new TwoPanels_jButton1_actionAdapter(this));
        jButton2.setText("Add Into B");
        jButton2.addActionListener(new TwoPanels_jButton2_actionAdapter(this));
        pnlA.setPreferredSize(new Dimension(200, 10));
        jButton3.setText("Add Here");
        jButton3.addActionListener(new TwoPanels_jButton3_actionAdapter(this));
        this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        rootPanel.add(pnlA, BorderLayout.WEST);
        pnlA.add(jButton3, null);
        rootPanel.add(pnlB, BorderLayout.CENTER);
        rootPanel.add(pnlC, BorderLayout.SOUTH);
        pnlC.add(jButton1, null);
        pnlC.add(jButton2, null);
      }  void jButton1_actionPerformed(ActionEvent e) {
        pnlA.add(new JButton("Button"+pnlA.getComponentCount()));
        pnlA.validate();
      }  void jButton2_actionPerformed(ActionEvent e) {
        pnlB.add(new JButton("Button"+pnlB.getComponentCount()));
        pnlB.validate();
      }  void jButton3_actionPerformed(ActionEvent e) {
        pnlA.add(new JButton("Button"+pnlA.getComponentCount()));
        pnlA.validate();
      }
    }class TwoPanels_jButton1_actionAdapter
        implements java.awt.event.ActionListener {
      TwoPanels adaptee;  TwoPanels_jButton1_actionAdapter(TwoPanels adaptee) {
        this.adaptee = adaptee;
      }  public void actionPerformed(ActionEvent e) {
        adaptee.jButton1_actionPerformed(e);
      }
    }class TwoPanels_jButton2_actionAdapter implements java.awt.event.ActionListener {
      TwoPanels adaptee;  TwoPanels_jButton2_actionAdapter(TwoPanels adaptee) {
        this.adaptee = adaptee;
      }
      public void actionPerformed(ActionEvent e) {
        adaptee.jButton2_actionPerformed(e);
      }
    }class TwoPanels_jButton3_actionAdapter implements java.awt.event.ActionListener {
      TwoPanels adaptee;  TwoPanels_jButton3_actionAdapter(TwoPanels adaptee) {
        this.adaptee = adaptee;
      }
      public void actionPerformed(ActionEvent e) {
        adaptee.jButton3_actionPerformed(e);
      }
    }
      

  3.   

    啊!!
    原来是validate()!!!!感谢SwordsmanF(没人性)! 同时也感谢loveyousomuch(★爱神厄洛斯★) !