基本的JFrame无法显示

时间:2019-11-10 12:14:24

标签: java swing jframe

我知道这个问题已经问了很多遍了,我已经尝试了最后一个小时提到的解决方案,但是没有一个对我有用。 我的框架非常简单,只是没有显示。没有错误,编译后只需“构建成功”即可。

整个代码是:

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

public class Frame extends JFrame
{    
    public Frame()
    {
        super("Hello");
        this.setBounds(100, 500, 100, 100);
        this.setDefaultCloseOperation(3);
    }

    public static void main(String[] args) 
    {
        new Frame().setVisible(true);
    }
}

预先感谢您的帮助。

4 个答案:

答案 0 :(得分:1)

我认为您主要的Frame实例来自已导入的包java.awt。*。 看看。

答案 1 :(得分:1)

我尝试了您的程序,该框架对我来说很好。您可以尝试几个步骤-

  1. 运行程序后,您应该在任务管理器中检查是否有新的Java进程可见,如果可以,请展开它,您应该看到“ Hello”,尝试将其放到最前面(右键单击进程->放到最前面) )。
  2. 从代码角度来看,尝试在this.pack();之后添加this.setDefaultCloseOperation,然后重新运行程序。

答案 2 :(得分:1)

首先阅读How to Make Frames上的Swing教程。

下载并测试FrameDemo示例。它向您展示了创建Swing组件的正确方法。一项关键是,应在事件调度线程(EDT)上修改后创建Swing组件。

如果此代码不起作用,则说明您的JDK可能有问题。尝试重新安装。

答案 3 :(得分:0)

我看不到您的程序有任何问题。我只是尝试了以下程序,但框架没有出现任何问题:

getusers({ commit }){
    const sessionToken = localStorage.getItem('sessionToken')
    axios.get('/newuser', {
        headers: {
            Authorization: `Bearer ${localStorage.getItem('sessionToken')}`
        },
    })
        .then(response => {
            const socket = openSocket('http://localhost:3000')
            socket.on('newuser', data => {
                if (data.serverResponse === 'created') {
                    this.users = data.user
                    commit('GET_USERS', users)
                })
        })
        .catch(error => {
            alert(error)
        })
})

我认为您应该更改import javax.swing.JFrame; public class Frame extends JFrame { public Frame() { super("Hello"); this.setBounds(100, 500, 100, 100); this.setDefaultCloseOperation(3); } public static void main(String[] args) { new Frame().setVisible(true); } } 中的值,然后重试。