Java 编译代码后,JFrame不会出现
我正在使用Intellij idea平台 我有以下代码:Java 编译代码后,JFrame不会出现,java,swing,jform,Java,Swing,Jform,我正在使用Intellij idea平台 我有以下代码: package GUI.test; import javax.swing.*; public class Ramka extends JFrame{ Ramka(){ setVisible(true); setSize(100,100); } public void main (String[] args){ new Ramka(); } } 我本
package GUI.test;
import javax.swing.*;
public class Ramka extends JFrame{
Ramka(){
setVisible(true);
setSize(100,100);
}
public void main (String[] args){
new Ramka();
}
}
我本想在编译完这段代码后看到一个JFrame,但什么也没有出现。这会是什么样的问题
也必须承认,我没有可能运行方法“main”。InteligIdea建议我只编译Ramka.java。编译完IntelijIdeay后,他说,编译成功完成了,但仅此而已,什么也没有发生。在我之前的练习中,我总是运行方法“main”。如果您实际运行main,您将看到您的Ramka。Main应该始终声明为
publicstaticvoidmain(String[]args)
,您忘记了static
。如果将其更改为:
public static void main (String[] args){
new Ramka();
}
它应该运行。如果你真的运行main,你会看到你的Ramka。Main应该始终声明为
publicstaticvoidmain(String[]args)
,您忘记了static
。如果将其更改为:
public static void main (String[] args){
new Ramka();
}
它应该运行。您应该执行以下操作:
public static void main (String[] args){
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Ramka().setVisible(true);
}
});
}
除了在
main
中缺少static
标识符之外,您还必须确保您的框架运行在swing的正确线程检查中您应该执行以下操作:
public static void main (String[] args){
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Ramka().setVisible(true);
}
});
}
除了在
main
中缺少static
标识符之外,您还必须确保您的框架运行在正确的swing线程检查中您在了解基本Java之前尝试创建swing GUI,这似乎是把车放在了马的前面。我强烈建议您从一开始就开始学习Java基础知识的入门教程,例如可以找到。在这里,您将了解主方法是如何构造的,编译程序与运行程序是不同的,等等。相信我,您不会后悔这样做的。您在了解基本Java之前尝试创建Swing GUI,这似乎是本末倒置。我强烈建议您从一开始就开始学习Java基础知识的入门教程,例如可以找到。在那里你会发现一个main方法是如何构造的,编译一个程序和运行一个程序是不同的,等等。相信我,你不会后悔这样做的。