-2

ボタンをクリックして保存すると、「はい」の文字列がコンソールに表示されるフォームがあります。

(テストには「Yes」文字列を使用します!)

しかし、クリックしても機能しません。私のコード:

public final class NewUserFrame1 extends JFrame implements ActionListener {

UserInformation userinfo;
JLabel fnamelbl;
JLabel lnamelbl;
JTextField fntf;
JTextField lntf;
JLabel gndlnl;
JRadioButton malerb;
JRadioButton femalerb;
ButtonGroup bgroup;
JLabel registnm;
JButton savebt;
JButton cancelbt;
JLabel showreglbl;

public NewUserFrame1() {
    add(rowComponent(), BorderLayout.CENTER);
    setLocation(200, 40);
    setVisible(true);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    pack();
}

public JPanel rowComponent() {

    JPanel panel = new JPanel();
    fnamelbl = new JLabel("First name");
    lnamelbl = new JLabel("Last Name");
    JLabel fntemp = new JLabel();
    JLabel lntemp = new JLabel();
    fntf = new JTextField(10);
    lntf = new JTextField(10);
    gndlnl = new JLabel("Gender");
    malerb = new JRadioButton("Male");
    femalerb = new JRadioButton("Female");
    bgroup = new ButtonGroup();
    bgroup.add(malerb);
    bgroup.add(femalerb);
    registnm = new JLabel("Registration ID is:");
    showreglbl = new JLabel("");
    JLabel regtemp = new JLabel();
    savebt = new JButton("Save");
    cancelbt = new JButton("Cancell");
    JLabel buttontemp = new JLabel();

    panel.add(fnamelbl);
    panel.add(fntf);
    panel.add(fntemp);
    panel.add(lnamelbl);
    panel.add(lntf);
    panel.add(lntemp);
    panel.add(gndlnl);

    JPanel radiopanel = new JPanel();
    radiopanel.setLayout(new FlowLayout(FlowLayout.LEFT));
    radiopanel.add(malerb);
    radiopanel.add(femalerb);
    panel.add(radiopanel);
    panel.add(new JLabel());
    panel.add(registnm);
    panel.add(showreglbl);
    panel.add(regtemp);
    panel.add(savebt);
    panel.add(cancelbt);
    panel.add(buttontemp);

    panel.setLayout(new SpringLayout());
    SpringUtilities.makeCompactGrid(panel, 5, 3, 50, 10, 80, 60);
    return panel;
}

public static void main(String[] args) {
    SwingUtilities.invokeLater(new Runnable() {
        @Override
        public void run() {
            NewUserFrame1 newUserFrame1 = new NewUserFrame1();
        }
    });
}

@Override
public void actionPerformed(ActionEvent e) {
    if (e.getSource() == savebt) {
        System.out.print("Yes");
    }
}

}
4

2 に答える 2

3

You need to tell the button to invoke the ActionListener:

savebt = new JButton("Save");
savebt.addActionListener(this);

保存ボタンとキャンセル ボタンに同じ方法を使用する場合は、おそらくActionEvent2 つのボタンのソースを比較して区別する必要があります。

于 2013-04-10T16:43:10.703 に答える