我写了个MainMenu的JFrame界面,里面在处理事件响应时要能调用另一个JFrame界面或Applet界面,但不知为啥原来MainMenu里的部分组建还显示??
部分代码如下:
public void actionPerformed(ActionEvent ae)
{ // 按钮事件处理
if (ae.getSource() == button1)
{
JOptionPane.showMessageDialog(MainMenu.this,"欢迎进入演示界面!") ;
buttondemo = new buttonDemo() ;
buttondemo.init();
add(buttondemo) ;
setVisible(true);
}
有啥问题??请教啊!!
部分代码如下:
public void actionPerformed(ActionEvent ae)
{ // 按钮事件处理
if (ae.getSource() == button1)
{
JOptionPane.showMessageDialog(MainMenu.this,"欢迎进入演示界面!") ;
buttondemo = new buttonDemo() ;
buttondemo.init();
add(buttondemo) ;
setVisible(true);
}
有啥问题??请教啊!!
import java.awt.* ;
import java.awt.event.* ;
import java.applet.*;
import javax.swing.* ;public class MainMenu extends JFrame implements ActionListener, MouseListener
{
threeButtons three ;
buttonDemo buttondemo ;
JLabel title, label ;
JButton button1 = new JButton("button1") ;
JButton button2 = new JButton("button2") ;
TextArea txt1,txt2 ;
Font fnt = new Font("宋体", Font.BOLD, 20) ; public MainMenu()
{
super("学习实例系统") ;
setSize(550,260) ;
setLocation(450,240) ;
setVisible(true) ;
GridBagLayout gridbag = new GridBagLayout() ;
GridBagConstraints constraints = new GridBagConstraints() ; JPanel pane = new JPanel() ;
pane.setLayout(gridbag) ;
add(pane) ;
constraints.fill = GridBagConstraints.NONE ;
constraints.gridwidth = GridBagConstraints.REMAINDER ;
constraints.insets = new Insets(10,0,0,0) ;
title = new JLabel("学习实例系统") ;
title.setFont(fnt) ;
gridbag.setConstraints(title,constraints) ;
pane.add(title) ;
// 界面布局分布
constraints.fill = GridBagConstraints.NONE ;
constraints.gridwidth = GridBagConstraints.REMAINDER ;
constraints.anchor = GridBagConstraints.WEST ;
constraints.insets = new Insets(10,7,0,10) ;
label = new JLabel(" 请选择将要进行的服务:") ;
gridbag.setConstraints(label,constraints) ;
pane.add(label) ; constraints.fill = GridBagConstraints.NONE ;
constraints.gridwidth = 1 ;
gridbag.setConstraints(button1,constraints) ;
constraints.insets = new Insets(0,5,5,5) ;
button1.setFont(fnt) ;
pane.add(button1) ;
constraints.fill = GridBagConstraints.NONE ;
constraints.gridwidth = GridBagConstraints.REMAINDER ;
constraints.weighty = 3 ;
txt1 = new TextArea(3,30) ;
gridbag.setConstraints(txt1,constraints) ;
pane.add(txt1) ;
constraints.fill = GridBagConstraints.NONE ;
constraints.gridwidth = 1 ;
gridbag.setConstraints(button2,constraints) ;
button2.setFont(fnt) ;
pane.add(button2) ;
constraints.fill = GridBagConstraints.NONE ;
constraints.gridwidth = GridBagConstraints.REMAINDER ;
txt2 = new TextArea(3,30) ;
gridbag.setConstraints(txt2,constraints) ;
pane.add(txt2) ;
button1.addActionListener(this) ;
button1.addMouseListener(this) ;
button2.addActionListener(this) ;
button2.addMouseListener(this) ;
}
public void mouseEntered(MouseEvent me)
{
if (me.getSource() == button1)
{
txt1.setText("buttonDemo界面 \n buttonDemo主要包括……") ;
}
if (me.getSource() == button2)
{
txt2.setText("threeButtons界面 \n threeButtons主要包括……") ;
}
}
public void mouseExited(MouseEvent mt)
{
if (mt.getSource() == button1)
{
txt1.setText("") ;
}
if (mt.getSource() == button2)
{
txt2.setText("") ;
}
}
public void mousePressed(MouseEvent e) { }
public void mouseClicked(MouseEvent e) { }
public void mouseReleased(MouseEvent e) { }
public void actionPerformed(ActionEvent ae)
{ // 按钮事件处理
if (ae.getSource() == button1)
{
JOptionPane.showMessageDialog(MainMenu.this,"欢迎进入buttonDemo界面!") ;
buttondemo = new buttonDemo() ;
buttondemo.init();
add(buttondemo) ;
setVisible(true);
}
if (ae.getSource() == button2)
{
JOptionPane.showMessageDialog(MainMenu.this,"欢迎进入threeButtons界面!") ;
three = new threeButtons() ;
three.init() ;
add(three) ;
setVisible(true);
}
}
// 主函数
public static void main(String[] args)
{
JFrame frame = new JFrame() ;
MainMenu mainmenu = new MainMenu() ;
frame.getContentPane() ;
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ; //关闭窗口时退出程序
frame.setVisible(false) ;
}}
import java.applet.* ;
import java.awt.* ;
import java.awt.event.* ;public class buttonDemo extends Applet implements ActionListener
{
TextField txtDept = new TextField(15) ;
TextField txtName = new TextField(20) ;
TextField txtPhone = new TextField(5) ;
TextArea PhoneList = new TextArea(10,30) ;
Button btn = new Button("Add To List") ;
String strDept,strName,strPhone ; public void init()
{
add(new Label("Department: ")) ;
add(txtDept) ;
add(new Label("Name: ")) ;
add(txtName) ;
add(new Label("Extension: ")) ;
add(txtPhone) ;
add(btn) ;
add(PhoneList) ;
txtDept.requestFocus() ;
btn.addActionListener(this) ;
txtDept.addActionListener(this) ;
txtName.addActionListener(this) ;
txtPhone.addActionListener(this) ;
}
public void actionPerformed(ActionEvent e)
{
String strOutputLine ;
strDept = txtDept.getText() ;
strName = txtName.getText() ;
strPhone = txtPhone.getText() ;
strOutputLine = strDept + "\t" + strName + "\t" +strPhone ;
PhoneList.append(strOutputLine + "\n") ;
txtDept.setText("") ;
txtName.setText("") ;
txtPhone.setText("") ;
txtDept.requestFocus();
}
}
两种办法:
方法1:
if (ae.getSource() == button1) {
JOptionPane.showMessageDialog(MainMenu.this,
"welcome to buttonDemo panel");
buttondemo = new buttonDemo();
buttondemo.init();
setContentPane(buttondemo);
validate();
//add(buttondemo);
//setVisible(true);
}
if (ae.getSource() == button1) {
JOptionPane.showMessageDialog(MainMenu.this,
"welcome to buttonDemo panel");
buttondemo = new buttonDemo();
buttondemo.init();
JFrame frame = new JFrame("test");
frame.setContentPane(buttondemo);
frame.pack();
frame.setVisible(true);
}
不过我试过dispose(),没用
还是谢谢啊