Java 如何解决';找不到符号';问题
如果我编译它,我会得到setDefaultCloseOperation、setSize和setVisible的“找不到符号”错误。我的问题是我不明白为什么。这是我家庭作业的一部分。但因为这个问题,我甚至不能开始下一部分Java 如何解决';找不到符号';问题,java,cannot-find-symbol,Java,Cannot Find Symbol,如果我编译它,我会得到setDefaultCloseOperation、setSize和setVisible的“找不到符号”错误。我的问题是我不明白为什么。这是我家庭作业的一部分。但因为这个问题,我甚至不能开始下一部分 //AdderSubtracterFrame.java //This class displays a Frame which can add or subtract two numbers import javax.swing.JFrame; public class Adde
//AdderSubtracterFrame.java
//This class displays a Frame which can add or subtract two numbers
import javax.swing.JFrame;
public class AdderSubtracterProgram
{
public static void main(String [] args)
{
AdderSubtracterFrame frame1 = new AdderSubtracterFrame("Adder and Subtracter");
frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame1.setSize(400,100);
frame1.setVisible(true);
}
}
我添加了两个类在同一个项目中的AdderSubtracterFrame代码。这个项目是做一个计算器
//AdderSubtracterFrame.java
//This class displays a Frame which can add or subtract two numbers
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JPanel;
import java.awt.GridLayout;
import java.awt.FlowLayout;
public class AdderSubtracterFrame
{
private JTextField num1TextField;
private JTextField num2TextField;
private JTextField resultTextField;
private JButton clearButton;
private JButton addButton;
private JButton subtractButton;
private JButton buttonPanel;
//Constructor
public AdderSubtracterFrame(String title)
{
//Set the title of the AdderSubtracterFrame by
//using the superclass JFrame constructor
super();
//Set the JFrame to be a 2*2 Grid
//Set a gap of 5pixels between each row and column.
setLayout(new GridLayout(2,2,5,5));
//Create and instance of the components appearing in the 2*2 grid
num1TextField = new JTextField("0",5);//Begin with 0
num2TextField = new JTextField("0",5);//Begin with 0
resultTextField = new JTextField((5));//Begin empty
buttonPanel = getButtonPanel();
//Add components to 2*2 Grid
add(num1TextField);
add(num2TextField);
add(resultTextField);
add(buttonPanel);
}
//Create and return a panel containing the buttons
private JPanel getButtonPanel()
{
JPanel myPanel = new JPanel();
myPanel.setLayout(new FlowLayout());
//Create an instance of each button
addButton = new JButton("+");
subtractButton = new JButton("-");
clearButton = new JButton("CLEAR");
//Add the 3button to myPanel
myPanel.add(addButton);
myPanel.add(subtractButton);
myPanel.add(clearButton);
return myPanel;
}
}
主要问题是,
AdderSubtracterFrame
没有扩展JFrame
。因此,您不能使用像setVisible()
这样的JFrame
功能
像这样声明您的AdderSubtracterFrame
以修复:
public class AdderSubtracterFrame extends JFrame {
我还发现了其他一些东西:
- 在构造函数中调用
,但不传递标题。更改为super()
super(标题)
- 不要在Java Swing GUI中使用固定大小。使用布局管理器(与您一样)并在框架上调用
,根据框架内的组件布局框架pack()
- JavaSwingGUI应该在事件调度线程(EDT)上运行。看
AdderSubtracterFrame
extendJFrame
,您只需从
公共类AdderSubtracterFrame{
到
公共类AdderSubtracterFrame扩展了JFrame{
您需要向我们展示AdderSubtracterFrame
的代码。它是否扩展了JFrame
?天哪,我解决了这个问题。我不敢相信它会这么简单。谢谢!不用担心。如果这解决了您的问题,请确保。