就是我编了一个小程序,(由于图插不进来,我只能描述了,抱歉)它有个主界面,主界面分为上下两个部分,上面我称为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); }}