带有组合框和文本字段的简单 Jframe 以及标签中的结果

Mij*_*jno 1 java swing jframe jtextfield jcombobox

我是 Java 新手,所以这个问题对某些人来说可能很愚蠢。我将 Eclipse 与摆动窗口构建器一起使用,但我不知道如何使我的 Jframe 工作。

我想要实现的目标很简单。

  1. 我想要一个带有多个选项的组合框(后面有两列,但我从一列开始),代表一个银行代码。
  2. 用于输入银行帐号的文本框。
  3. 一个按钮,需要使用框中选择的值和文本框中的帐号来调用方法 createIban(code,number)。此方法返回一个带有完整 IBAN 的字符串。

我希望这个字符串出现在标签或其他东西中(也可能复制到剪贴板或一些)。

我希望有人能帮助我在这个任务中走得更远。

maq*_*jav 5

在这里你有一个开始的代码......但是你应该检查一些教程并谷歌一点点来知道如何使它更漂亮。

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

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

public class Test extends JPanel {

    private static JComboBox comboBox;
    private static JTextField textField;

    // Create a form with the fields
    public Test() {
        super(new BorderLayout());
        // Panel for the labels
        JPanel labelPanel = new JPanel(new GridLayout(2, 1)); // 2 rows 1 column
        add(labelPanel, BorderLayout.WEST);

        // Panel for the fields
        JPanel fieldPanel = new JPanel(new GridLayout(2, 1)); // 2 rows 1 column
        add(fieldPanel, BorderLayout.CENTER);

        // Combobox
        JLabel labelCombo = new JLabel("Bank Code");

        // Options in the combobox
        String[] options = { "Option1", "Option2", "Option3", "Option4", "Option15" };
        comboBox = new JComboBox(options);
        comboBox.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                // Do something when you select a value

            }
        });

        // Textfield
        JLabel labelTextField = new JLabel("Bank account number");
        textField = new JTextField();

        // Add labels
        labelPanel.add(labelCombo);
        labelPanel.add(labelTextField);

        // Add fields
        fieldPanel.add(comboBox);
        fieldPanel.add(textField);
    }

    public static void main(String[] args) {
        final Test form = new Test();

        // Button submit
        JButton submit = new JButton("Submit Form");
        submit.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                createIban((String) comboBox.getSelectedItem(), textField.getText());
            }
        });

        // Frame for our test
        JFrame f = new JFrame("Text Form Example");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.getContentPane().add(form, BorderLayout.NORTH);

        // Panel with the button
        JPanel p = new JPanel();
        p.add(submit);
        f.getContentPane().add(p, BorderLayout.SOUTH);

        // Show the frame
        f.pack();
        f.setVisible(true);
    }

    private static void createIban(String selectedItem, String text) {
        // Do stuff with your data
        System.out.println("Im in createIban with the values: " + selectedItem + " and " + text);
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 如果您真的要提供示例代码,请改进它。尊重Swing线程规则,去掉`JPanel`扩展,去掉静态字段,去掉静态方法(main方法除外) (3认同)