【问题标题】:Java Gui components do not appear in the JFrameJava Gui 组件不会出现在 JFrame 中
【发布时间】:2014-04-05 02:23:08
【问题描述】:

我有一个奇怪的问题,可能是我使用的 eclipse 的问题:

我想编写一个计算器,但应该出现在 Jframe 中的组件不存在!直到我点击它时文本字段才会出现,当我用鼠标指针越过它时按钮就会出来......

这是我的代码:

package calculator;

import java.awt.Font;

import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JButton;

public class MeinTaschenrechner extends JFrame {

    JTextField textField;
    JButton button1;

    public MeinTaschenrechner() {

        setVisible(true);
        setSize(300, 300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
        setTitle("Taschenrechner");
        setResizable(false);
        setLayout(null);


        textField=new JTextField("0");
        textField.setBounds(5, 10, 285, 50);
        Font font=textField.getFont().deriveFont(Font.PLAIN,30);
        textField.setFont(font);
        add(textField);
//      addingNumberButtons();
        button1=new JButton("1");
        button1.setBounds(5, 65, 75, 65);
        add(button1);
    }

这是我的主要课程:

package calculator;

public class ExecuteKlasse {

    public static void main(String[] args) {

        MeinTaschenrechner cc=new MeinTaschenrechner();

    }

}

【问题讨论】:

    标签: java swing user-interface components


    【解决方案1】:

    你不能设置 setVisible(true);你的第一行代码。添加 setVisible(true);作为构造函数的最后一行。

    【讨论】:

    • 完美!如果是第一行有什么问题?
    • 如果它是第一行,那么无论处于何种状态的组件都会开始绘制。在下一次重绘之前,您构建的其他组件不会出现,这可能有多种原因,例如,如果您拉伸窗口,或者如果组件像您使用按钮一样具有特殊的滚动区域,则将鼠标悬停在特殊的滚动区域上。
    • @user3133542,您需要先将组件添加到框架中,然后才能使其可见。另外,不要使用 setBounds()。 Swing 旨在与布局管理器一起使用。
    猜你喜欢
    • 1970-01-01
    • 2011-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多