日期:2014-05-20  浏览次数:20546 次

关于javaGUI编程问题,求高手!!!
就是我编了一个小程序,(由于图插不进来,我只能描述了,抱歉)它有个主界面,主界面分为上下两个部分,上面我称为Head,下面称为content,Head里面有一排组件,Button1,Button2,Button3,Button4,Button5,我希望当我点Button键的时候,content里面就可以响应我的操作,例如有个Button键的功能是注册,content里面就显示出注册的界面。可是我不知打怎么去刷新界面,我用JFrame中的repaint(),完全没有效果,有人说要得到窗体的句柄,那是怎么弄呀???希望知道的高手们教教我吧!我是初学者,才开始GUI编程,所以好多都不知道,在书上也没有找到相关的内容,所以会的童鞋们教教我吧,谢谢了!!!

------解决方案--------------------
好久没动过GUI了,你可以试试分区(上、下),下面用个面板做底……网上应该有相似例子,lz找找
------解决方案--------------------
content 是一个 JPanel 吧。那么,换掉这个面板就行了。
------解决方案--------------------
写了个简单的,点不同按钮可刷新不同内容,,你看看是否是你意思……

Java code
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class Test extends JFrame{
    JPanel panel_1, panel_2;
    JButton button1, button2;
    JLabel label;
    String a = "in button_1_1_1";
    String b = "in button_2_2_2";
    
    public Test(){
        setTitle("test");
        setBounds(300, 100, 500, 500);
        Container c = getContentPane();
        c.setLayout(new BorderLayout());
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        
                
        button1 = new JButton("button1");     
        button2 = new JButton("button2");
        label = new JLabel();        
        panel_1 = new JPanel();
        panel_1.setLayout(new FlowLayout(FlowLayout.CENTER, 100, 10));  //设置panel_1的网格
        panel_2 = new JPanel();
        
        panel_1.add(button1);
        panel_1.add(button2);
        panel_2.add(label);
        
        c.add(panel_1, BorderLayout.NORTH);
        c.add(panel_2, BorderLayout.CENTER);
         
//-------------------------------------
         button1.addActionListener(new ActionListener(){    //加载button1按钮的事件
                public void actionPerformed(ActionEvent e){
                    label.setText(a);
                }
            });
         button2.addActionListener(new ActionListener(){    //加载button2按钮的事件
                public void actionPerformed(ActionEvent e){
                    label.setText(b);
                }
            });
    }
    
    public static void main(String []args){
        Test frame = new Test();
        frame.setVisible(true);
    }
}