我在(java)eclipse里编译没有显示错误,但就是运行不了(图形界面没有),请问这是什么原因???

2024-11-06 09:41:36
推荐回答(4个)
回答1:

你要想实现的是点击登陆后,出现计算界面吧?你有几个地方写的不对,public void myclass()要改成public Myclass或是要main方法中new Myclass().myclass().要不然你在main方法中只初始一个实例当然什么也不执行了。另外((ActionListener)this)这样写不对,ActionListener是一个接口,无论是Myclass还是JFrame都没有实现这个接口,所以你不能这样强制转型。另外注册事件一般是用匿名方法,向下面那样。另外你隐藏的JFrame也不对,可能是写错了吧。
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Myclass extends JFrame {
JFrame frm,frm2;
public Myclass(){
frm=new JFrame("登录界面");
frm.setSize(200,200);
frm.setLocation(20,20);
JPanel contentPane=new JPanel( );
setContentPane(contentPane);
JPanel secP1=new JPanel ();
JPanel secP2=new JPanel ();
contentPane.add(secP1,BorderLayout.CENTER);
contentPane.add(secP1,BorderLayout.SOUTH);

JTextField jt = new JTextField(10);
secP1.add(jt);
JLabel lab1 = new JLabel("账 号:");
JTextField tf = new JTextField(15);
JLabel lab2 = new JLabel("密 码:");
JPasswordField pwf = new JPasswordField(15);
contentPane.add(lab1);
contentPane.add(tf);
contentPane.add(lab2);
contentPane.add(pwf);
JButton btn = new JButton ("登录");
btn.addActionListener(
new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 可在if里对用户名和密码进行验证 if (e.getActionCommand().equals("登录"));
frm. setVisible(false);
frm2. setVisible(true);
}
});
secP1.add(btn);
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frm.setVisible(true);

frm2=new JFrame("计算界面");
frm2.setSize(200,200);
frm2.setLocationRelativeTo(null);
frm.setContentPane(contentPane);
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frm2.setVisible(false);
}
public static void main (String [] args){
new Myclass();
}
/*
public void actionPerformed(ActionEvent args0){
if (args0.getActionCommand().equals("登录"));
frm. setVisible(false);
frm. setVisible(true);
}
*/
}

回答2:

main函数改一下
public static void main (String [] args){
Myclass m=new Myclass();
m.setVisible(true);
}

回答3:

新手任务。。

回答4:

新手任务