gpt4 book ai didi

java - 基本 GUI Swing - 组件未显示

转载 作者:行者123 更新时间:2023-12-01 07:57:25 25 4
gpt4 key购买 nike

这是我的代码片段,其中包含子 JButtonJPanel 对象,但它不起作用。并且它在 Eclipse 中没有显示任何编译错误。

import java.awt.FlowLayout;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

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

class gui extends JFrame implements ActionListener {
private JButton b;
private TextField c;
private JLabel l;
private String sn;

// Constructor for making framework
public gui() { setLayout(new FlowLayout());
JFrame f=new JFrame("Hello!");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
f.setSize(200,200);
f.setTitle("GUI");

b=new JButton("Click");
l=new JLabel("Enter Name");
c=new TextField("Enter..",10);
c.setEditable(true);
l.setBounds(20,20,20,20);
f.setBounds(10, 10, 10, 10);
b.addActionListener(this);
add(b);
add(f);
add(l);
add(c);
}

public static void main(String[] args) {
gui g=new gui();
g.setVisible(true);
} //main method

@Override
public void actionPerformed(ActionEvent e)
{
System.out.println("Working");
}
}

最佳答案

您的类“是一个”GUI,然后您还创建了一个新的 JFrame,因此您的代码中实际上有两个框架。

但是,您设置为可见的框架没有添加任何组件,因此您看到的只是框架。

然后,您尝试将组件添加到您的类(即框架)中。但是,您会遇到两个问题:

  1. 您从未使此框架可见并且

  2. Swing 使用布局管理器(您不需要使用 setBounds(...))。默认情况下,它使用 BorderLayout。当您将组件添加到框架而不指定约束时,组件将添加到“CENTER”。但是,“CENTER”中只能显示一个组件,因此只有最后添加的组件可见。

您还存在其他问题,因为您没有在事件分派(dispatch)线程上创建 GUI。所以确实有太多的问题需要纠正。

我建议您阅读 Swing 教程中关于 How to Use BorderLayout 的部分。有关如何创建简单 GUI 的工作示例。然后修改该代码。

关于java - 基本 GUI Swing - 组件未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28239165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com