gpt4 book ai didi

java - 在 Netbeans 中编译非常简单的 Java 程序不可靠

转载 作者:行者123 更新时间:2023-12-01 14:13:11 25 4
gpt4 key购买 nike

我学习 Java 几天了,正在尝试构建一个简单的计算器。

当我在 Netbeans 中运行代码时,大约有 30% 的时间它运行良好。弹出带有我的按钮的窗口。另外 70% 的时间只是弹出一个空白的 JFrame。

在这两种情况下,Netbeans 的“输出”选项卡都告诉我构建成功(总时间:N秒)

我的代码如下 - 我确信它包含无数的问题和错误,但具体来说,我试图理解为什么执行它的结果如此不可靠。

提前致谢,

import java.awt.Color;
import java.awt.PopupMenu;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Try1 extends JFrame {

public static void main(String[] args) {

//JFrame
JFrame frame = new JFrame();
frame.setSize(400,600);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setTitle("Ben's Program");
frame.setVisible(true);
frame.setLocationRelativeTo(null);
frame.setResizable ( false );

//JPanel
JPanel panel = new JPanel();
panel.setSize(360,100);
panel.setLocation(20, 20);
panel.setBackground(Color.BLUE);

//JPanel 2
JPanel panel2 = new JPanel();
panel2.setSize(360,420);
panel2.setLocation(20, 140);
panel2.setBackground(Color.RED);

//Button
JButton but1= new JButton("1");
JButton but2= new JButton("2");
JButton but3= new JButton("3");
JButton but4= new JButton("4");
JButton but5= new JButton("5");
JButton but6= new JButton("6");
JButton but7= new JButton("7");
JButton but8= new JButton("8");
JButton but9= new JButton("9");
JButton but0= new JButton("0");
JButton butadd= new JButton("+");
JButton butsub= new JButton("-");
JButton butmulti= new JButton("*");
JButton butdiv= new JButton("/");
JButton buteq= new JButton("=");
JButton butclear= new JButton("C");

//Button Layout
but1.setBounds(10, 81, 89, 23);
but2.setBounds(126, 81, 89, 23);
but3.setBounds(225, 81, 89, 23);
but4.setBounds(10, 115, 89, 23);
but5.setBounds(126, 115, 89, 23);
but6.setBounds(225, 115, 89, 23);
but7.setBounds(10, 149, 89, 23);
but8.setBounds(126, 149, 89, 23);
but9.setBounds(225, 149, 89, 23);
but0.setBounds(126, 183, 89, 23);
butadd.setBounds(126, 215, 89, 23);
butsub.setBounds(10, 215, 89, 23);
butmulti.setBounds(225, 183, 89, 23);
butdiv.setBounds(225, 149, 89, 23);
buteq.setBounds(126, 183, 89, 23);
butclear.setBounds(10, 183, 89, 23);

//Add Panel to Frame
frame.add(panel);
frame.add(panel2);

//Add Buttons to Panel2
panel2.add(but1);
panel2.add(but2);
panel2.add(but3);
panel2.add(but4);
panel2.add(but5);
panel2.add(but6);
panel2.add(but7);
panel2.add(but8);
panel2.add(but9);
panel2.add(butadd);
panel2.add(butsub);
panel2.add(butmulti);
panel2.add(butdiv);
panel2.add(buteq);
panel2.add(butclear);

}

}

最佳答案

将 JFrame 设置为可调整大小。当它弹出空白时,调整它的大小。内容是突然出现的吗?

如果是这样,则说明您遇到了刷新问题。实现组件监听器接口(interface),使用 JFrame.addComponentListener 添加它,并在 componentShown() 处理程序中调用 JFrame.validate()。

更新:

我测试了你的代码。将 setVisible 调用移至添加所有面板和按钮的调用之后,以解决刷新问题。存在布局问题,请使用 BorderLayout 和 GridBagLayout 组合来修复。

关于java - 在 Netbeans 中编译非常简单的 Java 程序不可靠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18323426/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com