希望在JavaSwingGUI中验证textField和comboBox

希望在JavaSwingGUI中验证textField和comboBox,java,swing,validation,combobox,textfield,Java,Swing,Validation,Combobox,Textfield,请温柔一点,这是我第一次使用Swing和GUI 我的问题: 我已经使用JavaSwingGUI编写了一些代码。我的代码的验证部分只会识别文本字段是否填写错误,而忽略组合框是否为空。有人能告诉我我做错了什么吗?我的目标是确保在用户点击submit时填写所有字段。这是我的密码: import java.awt.BorderLayout; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel;

请温柔一点,这是我第一次使用Swing和GUI

我的问题:

我已经使用JavaSwingGUI编写了一些代码。我的代码的验证部分只会识别文本字段是否填写错误,而忽略组合框是否为空。有人能告诉我我做错了什么吗?我的目标是确保在用户点击submit时填写所有字段。这是我的密码:

import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import com.jgoodies.forms.layout.FormLayout;
import com.jgoodies.forms.layout.ColumnSpec;
import com.jgoodies.forms.layout.RowSpec;
import com.jgoodies.forms.layout.FormSpecs;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JTextField;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class FeliciasStore_GUI extends JFrame {

private JPanel contentPane;
private JTextField textField;

/**
 * Launch the application.
 */
public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                FeliciasStore_GUI frame = new FeliciasStore_GUI();
                frame.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}

/**
 * Create the frame.
 */
public FeliciasStore_GUI() {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 558, 364);
    contentPane = new JPanel();
    contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    setContentPane(contentPane);
    contentPane.setLayout(null);

    JLabel lblNewLabel = new JLabel("Size:");
    lblNewLabel.setBounds(67, 39, 23, 14);
    contentPane.add(lblNewLabel);

    JComboBox<String> comboBox = new JComboBox<String>();
    comboBox.setBounds(96, 36, 161, 20);
    contentPane.add(comboBox);
    comboBox.addItem("Small");
    comboBox.addItem("Medium");
    comboBox.addItem("Large");
    comboBox.addItem("XLarge");
    comboBox.setSelectedItem(null);

    JLabel lblColor = new JLabel("Color:");
    lblColor.setBounds(61, 90, 29, 14);
    contentPane.add(lblColor);

    JComboBox<String> comboBox_1 = new JComboBox<String>();
    comboBox_1.setBounds(96, 87, 161, 20);
    contentPane.add(comboBox_1);
    comboBox_1.addItem("Blue");
    comboBox_1.addItem("Red");
    comboBox_1.addItem("Silver");
    comboBox_1.addItem("Gold");
    comboBox_1.addItem("Aqua");
    comboBox_1.addItem("Green");
    comboBox_1.addItem("Pink");
    comboBox_1.addItem("Purple");
    comboBox_1.addItem("White");
    comboBox_1.addItem("Black");
    comboBox_1.addItem("Orange");
    comboBox_1.addItem("Maroon");
    comboBox_1.setSelectedItem(null);

    JLabel label = new JLabel("");
    label.setBounds(518, 122, 19, 0);
    contentPane.add(label);

    JLabel lblStyle = new JLabel("Style:");
    lblStyle.setBounds(62, 141, 28, 14);
    contentPane.add(lblStyle);


    JComboBox<String> comboBox_2 = new JComboBox<String>();
    comboBox_2.setBounds(96, 138, 161, 20);
    contentPane.add(comboBox_2);
    comboBox_2.addItem("Queen");
    comboBox_2.addItem("King");
    comboBox_2.addItem("Pawn");
    comboBox_2.addItem("Knight");
    comboBox_2.addItem("Joker");
    comboBox_2.addItem("Babydoll");
    comboBox_2.addItem("Superstar");
    comboBox_2.setSelectedItem(null);

    JLabel lblInscription = new JLabel("Inscription:");
    lblInscription.setBounds(36, 192, 54, 14);
    contentPane.add(lblInscription);

    textField = new JTextField();
    textField.setBounds(96, 189, 161, 20);
    contentPane.add(textField);
    textField.setColumns(10);

    JButton btnSubmit_1 = new JButton("SUBMIT");
    btnSubmit_1.setBounds(96, 240, 161, 23);
    btnSubmit_1.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            if(textField.getText().length()>15 || comboBox == null || comboBox_1 == null || comboBox_2 == null) {
                JOptionPane.showMessageDialog(null,  "Insufficient input.", "Input Error", JOptionPane.ERROR_MESSAGE);
                return;
            }
            String enscription = textField.getText();
        }
    });
    contentPane.add(btnSubmit_1);
}

}
导入java.awt.BorderLayout;
导入java.awt.EventQueue;
导入javax.swing.JFrame;
导入javax.swing.JPanel;
导入javax.swing.border.EmptyBorder;
导入com.jgoodies.forms.layout.FormLayout;
导入com.jgoodies.forms.layout.ColumnSpec;
导入com.jgoodies.forms.layout.RowSpec;
导入com.jgoodies.forms.layout.FormSpecs;
导入javax.swing.JLabel;
导入javax.swing.JOptionPane;
导入javax.swing.JButton;
导入javax.swing.JComboBox;
导入javax.swing.JTextField;
导入java.awt.event.ActionListener;
导入java.awt.event.ActionEvent;
公共类FeliciasStore_GUI扩展JFrame{
私有JPanel内容窗格;
私有JTextField textField;
/**
*启动应用程序。
*/
公共静态void main(字符串[]args){
invokeLater(新的Runnable(){
公开募捐{
试一试{
FeliciasStore_GUI frame=新的FeliciasStore_GUI();
frame.setVisible(true);
}捕获(例外e){
e、 printStackTrace();
}
}
});
}
/**
*创建框架。
*/
公共福利局{
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
立根(100100558364);
contentPane=newjpanel();
setboorder(新的EmptyBorder(5,5,5,5));
setContentPane(contentPane);
contentPane.setLayout(null);
JLabel lblNewLabel=新JLabel(“大小:”);
lblNewLabel.立根(67,39,23,14);
contentPane.add(lblNewLabel);
JComboBox comboBox=新的JComboBox();
组合框.立根(96,36,161,20);
contentPane.add(组合框);
comboBox.addItem(“小”);
comboBox.addItem(“中”);
comboBox.addItem(“大”);
comboBox.addItem(“XLarge”);
comboBox.setSelectedItem(空);
JLabel lblColor=新的JLabel(“颜色:”);
lblColor.立根(61,90,29,14);
contentPane.add(lblColor);
JComboBox组合框_1=新的JComboBox();
组合框_1.立根(96,87,161,20);
contentPane.add(组合框1);
组合框_1.附加项(“蓝色”);
组合框_1.附加项(“红色”);
组合框_1.附加项(“银”);
组合框_1.附加项(“黄金”);
组合框_1.附加项(“Aqua”);
组合框_1.附加项(“绿色”);
组合框_1.附加项(“粉色”);
组合框_1.附加项(“紫色”);
组合框_1.附加项(“白色”);
组合框_1.附加项(“黑色”);
组合框_1.附加项(“橙色”);
组合框_1.附加项(“褐红色”);
组合框_1.setSelectedItem(空);
JLabel标签=新的JLabel(“”);
标签.立根(518122,19,0);
contentPane.add(标签);
JLabel lblStyle=新的JLabel(“样式:”);
lblStyle.挫折(62,141,28,14);
contentPane.add(lblStyle);
JComboBox组合框_2=新的JComboBox();
组合框2.立根(96138161,20);
contentPane.add(组合框2);
组合框2.附加项(“女王”);
组合框2.附加项(“国王”);
组合框_2.附加项(“典当”);
组合框2.附加项(“骑士”);
组合框2.附加项(“小丑”);
组合框_2.附加项(“Babydoll”);
组合框2.附加项(“超级明星”);
组合框_2.setSelectedItem(空);
JLabel lblInscription=新JLabel(“铭文:”);
lblInscription.setBounds(36,192,54,14);
contentPane.add(lblInscription);
textField=新的JTextField();
textField.setBounds(9618916120);
contentPane.add(textField);
textField.setColumns(10);
JButton btnSubmit_1=新JButton(“提交”);
btnSubmit_1.挫折(9624016123);
btnSubmit_1.addActionListener(新ActionListener(){
已执行的公共无效操作(操作事件e){
if(textField.getText().length()>15 | | comboBox==null | | | comboBox_1==null | | comboBox_2==null){
showMessageDialog(null,“输入不足”,“输入错误”,JOptionPane.Error\u消息);
返回;
}
String enscription=textField.getText();
}
});
contentPane.add(btnsupmit_1);
}
}

可能
combobox.getSelectedItem()==null | | combobox_1.getSelectedItem()==null | | combobox_2.getSelectedItem()==null
?谢谢!!!那很有效!程序现在正在按预期运行<代码>这是我第一次使用Swing和GUI。-不要使用空布局。Swing的设计目的是配合使用。