java - 调用 isVisible() 后 JFrame 不显示,没有错误
问题描述
我正在为我的 CS 课创建一个简单的计算器,我已经完成了所有的数学运算,我正在尝试格式化我的 JFrame,我制作了一个背景面板,向其中添加了一个 BoxLayout,然后添加了我的其他 3 个面板,然后添加了JFrame 的背景面板,但是在进行更改后,JFrame 永远不会打开。有人可以帮我弄清楚我做错了什么吗?
public class Calculator implements ActionListener
{
private JFrame myFrame;
private JPanel buttonPanel;
private JPanel resultPanel;
private JPanel textPanel;
public JPanel mainPanel;
private JButton ADD;
private JButton SUB;
private JButton MULT;
private JButton DIV;
private JLabel resultLabel;
private JTextField text1;
private JTextField text2;
public Calculator()
{
// Frame to contain panels
int fx = 550;
int fy = 300;
myFrame = new JFrame("The Shittiest Calculator");
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myFrame.setSize(fx, fy);
myFrame.setResizable(false);
// Buttons to add to the buttonPanel
ADD = new JButton("ADD");
SUB = new JButton("SUBTRACT");
MULT = new JButton("MULTIPLY");
DIV = new JButton("DIVIDE");
ADD.setName("addButton");
SUB.setName("subButton");
MULT.setName("multButton");
DIV.setName("divButton");
int x = 50;
int y = 25;
ADD.setSize(x, y);
SUB.setSize(x, y);
MULT.setSize(x, y);
DIV.setSize(x, y);
ADD.addActionListener(this);
SUB.addActionListener(this);
MULT.addActionListener(this);
DIV.addActionListener(this);
// Button Panel
buttonPanel = new JPanel();
buttonPanel.add(ADD);
buttonPanel.add(SUB);
buttonPanel.add(MULT);
buttonPanel.add(DIV);
// Result label
resultLabel = new JLabel("Result = ");
resultLabel.isVisible();
// Result Panel
resultPanel = new JPanel();
resultPanel.isVisible();
resultPanel.add(resultLabel);
// Textfields
text1 = new JTextField();
text2 = new JTextField();
text1.setName("leftOperand");
text2.setName("rightOperand");
text1.setColumns(10);
text2.setColumns(10);
// Textfield panel
textPanel = new JPanel();
textPanel.add(text1);
textPanel.add(text2);
//background Panel;
mainPanel = new JPanel();
mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
mainPanel.add(textPanel);
mainPanel.add(resultPanel);
mainPanel.add(buttonPanel);
//Frame start
myFrame.add(mainPanel);
myFrame.isVisible();
}
/**
*
* @return this.myFrame returns the frame.
*/
public JFrame getFrame()
{
return this.myFrame;
}
/**
*
* @param args main method
*/
public static void main(String[] args)
{
Calculator calc = new Calculator();
}
解决方案
将 .isVisible() 替换为 .setVisible(true)
.isVisible() 将返回一个布尔值,说明它在那一刻是否可见, .setVisible() 实际上会将其设置为可见
推荐阅读
- python - Wordcloud 仅适用于表情符号
- r - 如何根据r中的不同列聚合数据框的字符数据
- python - 删除输入部分 - PYTHON
- nuxt.js - Nuxt 内容 + Vuetify 组件 = 如何删除模板页面中将呈现降价内容的导入块
- mongoose - 更新子文档时触发中间件的解决方案
- angular - RXJS:observable 没有发送新的变量值
- python - json.load() 中的 JSONDecodeError 一切正常
- vb6 - Microsoft Access 数字系统语言问题
- cplex - 对决策变量 CPLEX OPL 的约束
- excel - 是否有将整个 excel 列从长日期转换为短日期的 Blue Prism 操作?