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

importjavax.swing.*;importjava.awt.*;importjava.awt.event.ActionEvent;importjava.awt.... 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 void 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((ActionListener)this);
secP1.add(btn);
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frm.setVisible(true);

frm2=new JFrame("计算界面");
frm2.setSize(200,200);
frm2.setLocationRelativeTo(null);
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frm.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);
}
}
展开
 我来答
失落De风景
2011-04-20 · TA获得超过8558个赞
知道小有建树答主
回答量:699
采纳率:0%
帮助的人:808万
展开全部
你要想实现的是点击登陆后,出现计算界面吧?你有几个地方写的不对,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);
}
*/
}
更多追问追答
追问
怎样把登录按钮放到最下面,谢了
追答
最简单的方法是注掉 
contentPane.add(secP1,BorderLayout.CENTER);
contentPane.add(secP1,BorderLayout.SOUTH);
这两行。
在secP1.add(btn);
这行下加上
contentPane.add(secP1);
这是swing的一个方面,你可以上网找下,叫布局管理器
bob12345cn
2011-04-20 · TA获得超过399个赞
知道小有建树答主
回答量:161
采纳率:0%
帮助的人:156万
展开全部
main函数改一下
public static void main (String [] args){
Myclass m=new Myclass();
m.setVisible(true);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-04-22
展开全部
新手任务。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lntswangxin
2011-04-22
知道答主
回答量:13
采纳率:0%
帮助的人:7万
展开全部
新手任务
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式