为了账号安全,请及时绑定邮箱和手机立即绑定

Java Swing GUI 未显示使用多个类

Java Swing GUI 未显示使用多个类

婷婷同学_ 2021-06-22 17:57:14
我正在使用 gridbaglayout 制作一个 GUI 类,这很好。我想创建这个类的一个对象并从我的主类中“生成”它。但是,当我运行主类时,什么也没有发生。当我运行 GUI 类时,GUI 出现。这里发生了什么?public class GUI extends JFrame {    JButton btnStart;    JPanel pnlRadio, pnlMain;    JLabel lblUsername, lblPassword, lblHerb;    JTextField txtUsername, txtPassword;    ButtonGroup btngrHerbs;    JRadioButton rdbHarralander, rdbRanarr, rdbToadflax;    GridBagConstraints gbc;    public GUI() {        pnlMain = new JPanel();        pnlMain.setLayout(new GridBagLayout());        gbc = new GridBagConstraints();        pnlRadio = new JPanel();        btnStart = new JButton("Start");        lblUsername = new JLabel("Username");        lblPassword = new JLabel("Password");        txtUsername = new JTextField();        txtPassword = new JTextField();        btngrHerbs = new ButtonGroup();        rdbHarralander = new JRadioButton("Harralander");        rdbRanarr = new JRadioButton("Ranarr");        rdbToadflax = new JRadioButton("Toadflax");        // Some layout stuff for gridbagconstraints, etc        gbc = new GridBagConstraints();        gbc.gridx = 0;        gbc.gridy = 3;        gbc.gridwidth = 2;        pnlMain.add(btnStart, gbc);        btnStart.addActionListener(e ->{            synchronized(Main.lock){                Main.lock.notify();            }            this.setVisible(false);        });    }    public JPanel getUI() {        return pnlMain;    }    public static void main(String[] args) throws InvocationTargetException, InterruptedException {        JFrame frame = new JFrame("Example");        frame.getContentPane().add(new GUI().getUI());        frame.setLocationRelativeTo(null);        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        frame.setVisible(true);        frame.pack();    }}所以当我运行 GUI 类时,什么都没有发生。GUI 按预期显示,但当然当我单击按钮时没有任何反应。当我启动主类时,GUI 甚至没有出现,我也没有在控制台上打印“A”。所以它似乎一直在等待那个锁对象?我想要的是等待按钮被按下的主类,然后将 GUI 设置为 false 并将一些值保存在变量中。我怎样才能做到这一点?
查看完整描述

2 回答

?
万千封印

TA贡献1891条经验 获得超3个赞

首先,最好在单个线程中提出一个问题。

mainatGUIMainclass的方法不一样。您还需要那些JFrameMain课堂上创建代码的人。

你的第二个问题我不清楚。


查看完整回答
反对 回复 2021-06-30
  • 2 回答
  • 0 关注
  • 120 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信