Java JFrame不';不显示

Java JFrame不';不显示,java,swing,jframe,Java,Swing,Jframe,我还有一个问题:我正在从我的Main调用一个类,它必须显示一个JFrame。我甚至不能继续我的程序,因为当我尝试运行它时,JFrame不会显示。 我正在使用Eclipse 主要内容: 二等舱: package System; import java.util.Calendar; import java.util.GregorianCalendar; import java.awt.*; import javax.*; import javax.swing.event.*; import jav

我还有一个问题:我正在从我的Main调用一个类,它必须显示一个JFrame。我甚至不能继续我的程序,因为当我尝试运行它时,JFrame不会显示。 我正在使用Eclipse

主要内容:

二等舱:

package System;

import java.util.Calendar;
import java.util.GregorianCalendar;
import java.awt.*;
import javax.*;
import javax.swing.event.*;
import javax.swing.JButton;
import javax.swing.JFrame;

public class Menu {

    private JFrame ventana = new JFrame("Sistema de Productos Químicos");
    private JButton sup = new JButton("Supervisor");
    private JButton oper = new JButton("Operario");

    Menu()
    {
        ventana.setSize(500,500);
        ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        ventana.add(sup);
        ventana.add(oper);

        ventana.setVisible(true);
    }

}

谢谢

因为您的jframe类名是
菜单
,并且您已经导入了

import java.awt.Menu;
这将创建一个新的
awt菜单
,而不是创建jframe的菜单类

new Menu();
要修复此问题,请将菜单类的名称更改为其他名称

比如说

public class MyMenu { //

如果您使用System.out.println(“Say some random”),这是当您的程序不工作且不是语法错误时要做的事情,您会发现主类甚至没有调用Menu类,因此“减少”了您对srong的搜索区域,我没有发现问题,当我这样做时,它会更新答案。

它应该可以工作,事实上,当我尝试运行它时,它会显示一个JFrame。尝试运行时是否看到任何错误消息?您是否尝试过使用Eclipse调试器运行它,以查看程序运行时调用了什么?请注意,当您让它运行时,您会注意到您只看到一个JButton,即oper JButton,因为它填充了JFrame的contentPane,因为contentPane使用BorderLayout。我建议您将按钮添加到JPanel,然后将JPanel添加到JFrame。编辑:根据Fast Snail的说法,我错了,1+避免给出与核心Java类名称冲突的类名称。此外,还可以在不同的系统之间重命名您的包,因为包名应该是小写的。正如其他人所评论的,您打破了命名约定,结果很糟糕。然而,还有其他问题。例如,与Swing/AWT对象的任何交互都必须在事件分派线程上。请(再次)阅读我的错误:在发布我自己的答案之前,没有阅读过其他人的答案/评论,无论如何,让这个答案的“寓意”与System.out.println()一起玩,以便在询问/尝试找到解决方案之前,去除搜索错误/错误的区域。当你接触到越来越复杂的程序时,会有很大的帮助。:)“首先,您忘了在菜单类上扩展JFrame…”首先,不要扩展
JFrame
,除非有明确的理由这样做。很少有这样的理由,当然这里也没有。好的,我会处理掉的。谢谢你的建议
public class MyMenu { //