Java 图形用户界面无法正常工作

标签 java swing netbeans

我有以下代码来设置一个 gui,以使用 JComboBox 从用户输入源语言和目标语言,但在运行时,除了显示按钮之外什么也没有,请提出建议。我已经在构造函数中完成了初始化和所有其他内容。

import java.io.*;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.Insets;
import java.io.FileNotFoundException;

public class SrcAndTargLangInput implements ActionListener {
    public static JFrame frame;
    public static JComboBox sourcLang;
    public static JComboBox targLang;
    public static JLabel setSrcLang;
    public static JLabel setTargLang;
    public static JButton ok;
    String[] lang = new String[2];

    public SrcAndTargLangInput() {
        ok = new JButton("Ok");
        ok.setBounds(150, 400, 100, 50);
        frame = new JFrame();
        frame.getContentPane().setLayout(null);
        frame.getContentPane().add(ok);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
        Insets ins = frame.getInsets();
        frame.setSize(400 + ins.left + ins.right, 500 + ins.bottom + ins.top);
        setSrcLang = new JLabel("Source Language");
        setSrcLang.setBounds(50, 100, 100, 40);
        setTargLang = new JLabel("Target Language");
        setTargLang.setBounds(50, 200, 100, 40);
        String[] srcLangList = { "English", "Spanish", "French" };
        sourcLang = new JComboBox(srcLangList);
        sourcLang.setBounds(250, 100, 100, 40);
        String[] targLangList = { "English", "Spanish", "French" };
        targLang = new JComboBox(targLangList);
        targLang.setBounds(250, 200, 100, 40);
        frame.setVisible(true);
        ok.addActionListener(this);
    }

    public static void main(String args[]) {
        new SrcAndTargLangInput();
    }

    public void actionPerformed(ActionEvent e) {
        lang[0] = (sourcLang.getSelectedItem().toString());
        lang[1] = (targLang.getSelectedItem().toString());
        frame.setVisible(false);
    }
}

最佳答案

您是否先仔细检查过您的代码?您已将 JButton 添加到框架的内容 Pane ,但尚未添加 JComboBox。也不需要调用frame.setVisible(true);两次;只需在向框架添加元素完成后调用它即可。

最后,您不应该在 Event Dispatch Thread (EDT) 之外运行 Swing GUI 代码。或者稍后您可能会遇到线程问题。将您的主要方法更改为:

public static void main(String args[]) {
    SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            new SrcAndTargLangInput();
        }
    }
}

关于Java 图形用户界面无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24516469/

相关文章:

java.util.regex.PatternSyntaxException : Unclosed character class near index 44

java - JButton 数组上的 ActionListener

java - 绘制字符串时窗口卡住一次

java - 如何在 JLabel 或 JEditorPane 中指定选择

eclipse - 什么是Buildship?NetBeans是否有Gradle插件?

java - 在 jbutton 中使用 netbeans 自动生成的 jtextfield 进行 mysql 搜索

java - view.getRight 返回 ImageView 的宽度,而不是位置

java - 有什么方法可以使用带有两对不同分隔符的正则表达式吗?

java - 网络 I/O 在 BlackBerry OS 5 上挂起

maven - 找不到 application.xml 中定义的子模块 [portal-service-ejb-1.4-SNAPSHOT.jar]