关于我用java编的一个程序中的问题
我在Eclipse中编了这样两个JFrame,要实现输入正确密码后能够进入下面这个JFrame的窗体,现我写了如下代码,但总有问题,求大神指导~JButtonbtnLog...
我在Eclipse中编了这样两个JFrame,要实现输入正确密码后能够进入下面这个JFrame 的窗体,现我写了如下代码,但总有问题,求大神指导~
JButton btnLogin = new JButton("\u786E\u8BA4");
btnLogin.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(!passwordField.getText().equals("film")){
JOptionPane.showMessageDialog(null, "密码不正确,请重新输入!");
}else{
frame.setVisible(false);
new MainFrame.setVisible(true);??(这句一直有问题,要怎么改呢?)
}
}
});
下面这个的代码部分是这样的
public class MainMenu<MainFrame> {
private JFrame MainMenu;
第二个窗口的部分代码:
import java.awt.EventQueue;
public class MainMenu<MainFrame> {
private JFrame MainMenu;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
MainMenu window = new MainMenu();
window.MainMenu.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public MainMenu() {
initialize();
}
/**
* Initialize the contents of the frame.
*/ 展开
JButton btnLogin = new JButton("\u786E\u8BA4");
btnLogin.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(!passwordField.getText().equals("film")){
JOptionPane.showMessageDialog(null, "密码不正确,请重新输入!");
}else{
frame.setVisible(false);
new MainFrame.setVisible(true);??(这句一直有问题,要怎么改呢?)
}
}
});
下面这个的代码部分是这样的
public class MainMenu<MainFrame> {
private JFrame MainMenu;
第二个窗口的部分代码:
import java.awt.EventQueue;
public class MainMenu<MainFrame> {
private JFrame MainMenu;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
MainMenu window = new MainMenu();
window.MainMenu.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public MainMenu() {
initialize();
}
/**
* Initialize the contents of the frame.
*/ 展开
2个回答
展开全部
new MainFram().setVisible(true);
追问
这个MainFrame 是指我的第二个窗口的类名吗?还是不对,如果是这样,说MainFrame cannot be resolved to a type;我的类名是MainMenu,但是如果这里是new MainMenu就说setVisible是undefined for the type MainMenu...
追答
我说你是给自己找了麻烦,像类别的声明和方法的调用应该分开,
MainFrame frame=new MainFrame();
frame.setVisible(true);
还有按你的意思看,两个窗体,一个是MainMenu(第一幅图),一个是MainFrame(第二幅图),
那么很简单,两个MainMenu 和MainFrame都继承JFrame。各自实现自己的窗口的创建,然后在跳转的监听器的中,加入上面两句,同时隐藏或销毁第一个窗口就行了。
最后我想说说泛型,就是那个尖括号,在这里完全没必要。而且泛型的初始化,要加上设定的数据类型,可以类比ArrayList,你如果不指定这个string就不知道什么类型,就会出现cannot be resolved to a type。
最后,我想说的是java的主程序入口是Main函数,其为static 静态函数,所以其不能通过类名来调用,只能先实例化再调用。所以这句window.MainMenu.setVisible(true); 错了。
public MainMenu() { initialize(); }这个返回值又跑哪去了?
public class MainMenu 没这种用法。
最后,希望写程序的时候细心些,一行只完成一句代码,清楚比一切都重要。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询