加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

为什么我真正非常简单的Java程序有时会起作用,有时却不起作用?

发布时间:2020-12-15 04:58:00 所属栏目:Java 来源:网络整理
导读:我刚刚开始使用 Java,之前只使用过 PHP – 很难找到面向对象的东西.我正在使用Eclipse IDE. 我正在尝试制作一个能够告诉你在另一个星球上的重量的程序 – 看起来很简单 到目前为止我所做的就是在Swing中创建一半的界面(这就是所谓的?) 有时我会运行它,它会
我刚刚开始使用 Java,之前只使用过 PHP – 很难找到面向对象的东西.我正在使用Eclipse IDE.

我正在尝试制作一个能够告诉你在另一个星球上的重量的程序 – 看起来很简单

到目前为止我所做的就是在Swing中创建一半的界面(这就是所谓的?)

有时我会运行它,它会像我期望的那样出现,标题,文本框等….
其他时候(当绝对没有做出任何改变时),它只会出现一个空白屏幕

该图像显示了它工作时的样子.当它不工作时,就没有任何物体.它的工作时间约占20%.

我想这可能是因为我的下拉菜单 – 或JComboBox,这一直是一个头疼 – Eclipse让我添加“< Object>”在每次提到JComboBox之后 – 它说“JComboBox是原始类型.对泛型类型JComboBox的引用应该参数化”

我不知道为什么会这样,而且我可能只是真的很厚,抱歉,如果这是一个愚蠢的问题,但我怎么能解决这个问题,我的代码有什么问题?

package calc;

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

public class View extends JFrame {

static String titleText = "Calculate your Mass on another Plannet";

public View(){
    super(titleText);
    setSize(500,400);
    setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE);
    setVisible(true);

    FlowLayout flo = new FlowLayout();
    setLayout(flo);

    JPanel inputData = new JPanel();


    //Labels
    JLabel lblTitle = new JLabel (titleText,JLabel.CENTER);
    lblTitle.setFont(new Font("Arial",Font.BOLD,24));
    JLabel lblInputMass = new JLabel ("Weight",JLabel.LEFT);
    JLabel lblInputUnits = new JLabel("Units");     


    //Input Boxes and Lists
    JTextField txtInputMass = new JTextField(5);

    JComboBox<Object> comInputUnits;
    String arrUnits[] = {"Kilos","Stone","Pounds"};
    comInputUnits = new JComboBox<Object>(arrUnits);
    comInputUnits.setSelectedIndex(1);


    //Buttons
    JButton btnCalculate = new JButton("Calculate");

    //Append objects
    add(lblTitle);
    inputData.add(lblInputMass);
    inputData.add(txtInputMass);
    inputData.add(lblInputUnits);
    inputData.add(comInputUnits);
    inputData.add(btnCalculate);

    add(inputData);


}
/**
 * @param args
 */
public static void main(String[] args) {
    View sal = new View();


}

}

对不起,这是一个很长的问题,我会非常感谢任何建议或答案,
正如我所说,我知道关于Java的大麦,我刚刚开始 – 谢谢:)

解决方法

你应该

>只操纵event dispatch thread内的Swing组件;
>只有在所有组件都添加到框架后才调用setVisible(true);
>拼写只有一个n的行星,虽然不那么重要.

<对象> “Eclipse让你添加”被称为泛型类型.阅读tutorial on generics.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读