Java 使用JFrame-won';开始

Java 使用JFrame-won';开始,java,swing,jframe,jtextfield,Java,Swing,Jframe,Jtextfield,我试着写一个程序,你把一些数字放在一个JTextField中,然后它会用它做一些事情。我试图弄清楚如何使输入成为可能。但是,尽管Eclipse没有显示任何错误,我尝试的方法仍然不起作用。是的,我知道没有办法停止这个项目,但这只是一个测试 import javax.swing.*; public class NotenEingabe extends JFrame { public static void main(String[]args) { JF

我试着写一个程序,你把一些数字放在一个JTextField中,然后它会用它做一些事情。我试图弄清楚如何使输入成为可能。但是,尽管Eclipse没有显示任何错误,我尝试的方法仍然不起作用。是的,我知道没有办法停止这个项目,但这只是一个测试

import javax.swing.*;

    public class NotenEingabe  extends JFrame {     

    public static void main(String[]args) {
        JFrame frame = new JFrame();

        JPanel panel = new JPanel();

        JLabel label = new JLabel("text");

        JTextField field = new JTextField("text");

        panel.add(label);
        panel.add(field);

        frame.setTitle("Grade input");
        frame.pack();
        frame.add(panel);
        frame.setVisible(true);
    }
}
我希望这是一个真正的问题,而不仅仅是我的疲劳

    frame.setVisible(true);
    frame.add(panel);
在使框架可见之前,应将构件添加到框架中

布局管理器不会被调用,因此组件的大小为(0,0),这意味着没有要绘制的内容

frame.setTitle("Grade input");
frame.add(panel);
//frame.setSize(700, 700);
frame.pack();
frame.setVisible(true);
在使框架可见之前,应将构件添加到框架中

布局管理器不会被调用,因此组件的大小为(0,0),这意味着没有要绘制的内容

frame.setTitle("Grade input");
frame.add(panel);
//frame.setSize(700, 700);
frame.pack();
frame.setVisible(true);

首先,当您从jframe扩展类时,您不需要实例化新的jframe,只需创建一个新的类实例,然后使用该实例访问jframe,或者删除ExtendJFrame并使用函数方法

您没有设置窗格的反布局 测试这个,然后你可以从各种布局中进行选择

panel.setLayout(newFlowLayout());

首先,当您从jframe扩展类时,您不需要实例化新的jframe,只需创建一个新的类实例,然后使用该实例访问jframe,或者删除ExtendJFrame并使用函数方法

您没有设置窗格的反布局 测试这个,然后你可以从各种布局中进行选择

panel.setLayout(newFlowLayout());

谢谢你的回答,但是现在我将大小设置为“pack”,并在使框架可见之前添加了组件,但它仍然不工作。还有什么不对的吗?对我来说很好。用新代码更新您的问题,并确保您编译的代码“对我来说很好。”这里也一样。事实上,即使复制/粘贴的代码在这里也可以工作,但这可能会随着VM版本/mfr/OS的不同而变化。因此,如果它对您不起作用,我会再次调用post更新代码。@Paddy在添加面板之前正在打包框架。所以它不起作用,因为他没有完全使用这个答案。谢谢大家的帮助,但现在它至少显示了一个错误。我无法用英语说出错误是什么,因为我使用的是德语版Eclipse,但类似于:“找不到或加载主类notenTest.PopupInput。原因:java.lang.ClassNotFoundException:notenTest.PopupEingabe。”我不知道这到底是什么意思。如果你是德国人,这里有一个德国错误:Fehler:Hauptklasse notenTest.PopupEingabe konnte nicht gefunden Order geladen werden Ursache:java.lang.ClassNotFoundException:notenTest.Popupeingabeth谢谢你的回答,但现在我将大小设置为“pack”,并在使框架可见之前添加了组件,但它仍然无法工作。还有什么不对的吗?对我来说很好。用新代码更新您的问题,并确保您编译的代码“对我来说很好。”这里也一样。事实上,即使复制/粘贴的代码在这里也可以工作,但这可能会随着VM版本/mfr/OS的不同而变化。因此,如果它对您不起作用,我会再次调用post更新代码。@Paddy在添加面板之前正在打包框架。所以它不起作用,因为他没有完全使用这个答案。谢谢大家的帮助,但现在它至少显示了一个错误。我无法用英语说出错误是什么,因为我使用的是德语版Eclipse,但类似于:“找不到或加载主类notenTest.PopupInput。原因:java.lang.ClassNotFoundException:notenTest.PopupEingabe。”我不知道这到底是什么意思。如果你是德国人,这里有一个德国错误:Fehler:Hauptklasse notenTest.PopupEingabe konnte nicht gefunden order geladen werden Ursache:java.lang.ClassNotFoundException:notenTest.PopupEingabe(1-)1)你不应该扩展JFrame,因为你没有向框架添加任何新功能。创建JFrame实例是正确的解决方案。2) JPanel的默认布局管理器是FlowLayout。(1-)1您不应该扩展JFrame,因为您没有向框架添加任何新功能。创建JFrame实例是正确的解决方案。2) JPanel的默认布局管理器是FlowLayout。“在JTextField中输入一些数字”请为用户提供一个
JSpinner
,而不是
SpinnerNumberModel
。“但它仍然不起作用”因此,该问题与当前代码有关。您应该在打包框架之前添加面板。它很可能是屏幕顶部的一个小边框,您没有注意到。注:无需在此处使用
NotenEingabe
扩展
JFrame
。“在JTextField中输入一些数字”请为用户提供一个
JSpinner
喷丝头编号模型。“但它仍然不起作用”因此,该问题与当前代码有关。您应该在打包框架之前添加面板。它很可能是屏幕顶部的一个小边框,您没有注意到。PS:这里不需要have
NotenEingabe
扩展
JFrame