我在(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);
}
} 展开
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);
}
} 展开
4个回答
展开全部
你要想实现的是点击登陆后,出现计算界面吧?你有几个地方写的不对,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);
}
*/
}
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的一个方面,你可以上网找下,叫布局管理器
展开全部
main函数改一下
public static void main (String [] args){
Myclass m=new Myclass();
m.setVisible(true);
}
public static void main (String [] args){
Myclass m=new Myclass();
m.setVisible(true);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-04-22
展开全部
新手任务。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询