我希望我的程序在单击SkipBtn时打开第二个表单(已创建),但IntelliJ会抛出此错误:
错误:(24,19)java:找不到符号符号:方法 setVisible(boolean)location:类型的变量pw com.timeforbreak.PasswordWindow
我的代码:
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class BreakWindow {
private JButton skipBtn;
private JPanel breakWindow;
public static void main(String[] args) {
JFrame frame = new JFrame("BreakWindow");
frame.setContentPane(new BreakWindow().breakWindow);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
public BreakWindow() {
skipBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
PasswordWindow pw = new PasswordWindow();
pw.setVisible(true);
}
});
}
}
=================================
package com.timeforbreak;
import javax.swing.*;
public class PasswordWindow extends BreakWindow {
private JTextField password;
private JPanel passwordWindow;
public static void main(String[] args) {
JFrame frame = new JFrame("PasswordWindow");
frame.setContentPane(new PasswordWindow().passwordWindow);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}
答案 0 :(得分:0)
您的框架是一个局部变量,它无法在方法外部访问,尝试制作JFrame框架全局变量。
在main方法之外声明JFrame frame;
并在main方法
答案 1 :(得分:0)
您正在创建PasswordWindow:
PasswordWindow pw = new PasswordWindow();
扩展了BreakWindow
:
public class PasswordWindow extends BreakWindow
但是BreakWindow
是您的第一堂课main
而且没有这样的方法setVisible(boolean)
。
您的BreakWindow
应该延长JFrame
,您可以这样做:
public static void main(String[] args) {
JFrame frame = new BreakWindow("BreakWindow"); // was JFrame
不要记得在BreakWindow
课程中插入相应的构造函数。