【问题标题】:Frames and Buttons框架和按钮
【发布时间】:2017-08-23 14:38:58
【问题描述】:

您好,虽然我确实完成了我相当新的 java 基础知识,但当我尝试在新框架/面板上添加按钮时,我不断收到错误消息。关心教育我可能是什么问题?

import javax.swing.*;
import java.awt.*;

class MainClass {
    String cont_orders;
    private JFrame frame1;
    private JPanel mainpanel;
    JButton bt1, bt2, bt3, bt4, bt5;
    private JButton btotal = new JButton("Order");
    private JButton clearOr = new JButton("Clear");
    private JTextField pricetotal = new JTextField();
    private JTextField list_of_orders = new JTextField();

public MainClass(){
    gui();
}

private void gui(){
    frame1 = new JFrame("Order");
    frame1.setSize(500,430);
    frame1.setVisible(true);
    frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame1.setResizable(false);

    mainpanel = new JPanel();
    mainpanel.setBackground(Color.BLUE);

    mainpanel.add(bt1);
        bt1 = new JButton("M-Item 1 [Soda]");  
    frame1.add(mainpanel,BorderLayout.CENTER);
}
public static void main (String[]args){
    new MainClass();
}

}

我尝试正常练习编码,而不是依赖 NetBeans [JFrame Form/JPanel Form] 中的自动编码

愿意帮忙吗?

【问题讨论】:

  • 有什么错误?
  • 如果您遇到错误,请发布堆栈跟踪,如果您遇到图形问题,请发布屏幕截图。我看到的一件事是您从不设置面板的布局 - 无论如何都应该有一个默认的布局
  • 例外是 - 或者至少这是我从发布的代码中的猜测 - NPE。应该很简单,可以用调试器解决。
  • 首先你要初始化按钮,改成这个,bt1 = new JButton("M-Item 1 [Soda]"); mainpanel.add(bt1);它工作正常。

标签: java swing button jframe frame


【解决方案1】:

现在这不能在 java 中完成

mainpanel.add(bt1);
bt1 = new JButton("M-Item 1 [Soda]");  

把它转过来。

说明:bt1 字段当时是一个持有空对象的变量。 该对象(值)被添加,而不是像其他语言中的一些变量地址。

【讨论】:

    【解决方案2】:

    反转它bt1 = new JButton("M-Item 1 [Soda]" mainpanel.add(bt1); 因为如果不是 bt1 的值将是 null 所以你必须先填充它然后使用它。 或者 mainpanel.add(new JButton("..."));

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-07
      • 2017-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-17
      • 1970-01-01
      相关资源
      最近更新 更多