在java中只选中一个复选框

时间:2017-04-26 05:37:33

标签: java checkbox jframe

我尝试处理两个事件,即openfilenewfile checkbox,因为设置一次仅{1}} checkbox

最小代码:

新文件

private void newfileActionPerformed(java.awt.event.ActionEvent evt) {                                        
    textArea.setText("");
    newfile.setSelected(true);
    setTitle(filename);
}

中openFile

private void openfileActionPerformed(java.awt.event.ActionEvent evt) {                                         

    openfile.setSelected(true);

    FileDialog filedialog = new FileDialog(textEditorGui.this, "Open File", FileDialog.LOAD);
    filedialog.setVisible(true);

    if(filedialog.getFile() != null)
    {
        filename = filedialog.getDirectory() + filedialog.getFile();
        setTitle(filename);
    }
}

我已尝试将if else控件设置为计数器以检查是否已选中该复选框,但它无法正常工作。它部分正常工作,在这种情况下复选框已经过检查,但openfile无效。

我已尝试在两个块中设置if else控件以检查是否未选中该复选框,然后设置该特定复选框true

1 个答案:

答案 0 :(得分:1)

请注意,您可以使用JRadioButtonButtonGroup一次只选择一个按钮。工作代码:

package com.stackoverflow.json;

import java.awt.*;
import javax.swing.*;

public class UI extends JFrame {
    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.setSize(500, 600);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(new GridLayout(0,2));

        JRadioButton rb1 = new JRadioButton("squirrel");
        rb1.addActionListener(e -> {
            System.out.println("man: " + ((JRadioButton) e.getSource()).isSelected());
        });
        JRadioButton rb2 = new JRadioButton("rabbit");
        rb2.addActionListener(e -> {
            System.out.println("weman: " + ((JRadioButton) e.getSource()).isSelected());
        });

        ButtonGroup group = new ButtonGroup();
        group.add(rb1);
        group.add(rb2);

        frame.getContentPane().add(rb1, BorderLayout.CENTER);
        frame.getContentPane().add(rb2, BorderLayout.CENTER);

        frame.pack();
        frame.setVisible(true);
    }
}