我是java swing的新手.我已粘贴下面的代码供您参考,
我正在尝试创建2 JRadioButtonsin JFrame并且如果我点击JRadioButton它应该JCheckboxes在每个JRadioButton中显示5 JFrame.
JRadiobutton正在显示,但如果我点击JRadioButton "JCheckboxes"不显示.请参阅下面的代码,如果我的代码中有任何更改,请相应地做.我正在为此努力.
MultipleFramesExample.javacreateMainView()在Mainview.java课堂上打电话
public class MultipleFramesExample extends JFrame {
public void fun()
{
MainView MV = new MainView();
MV.createMainView();
}
public static void main(String[] args) {
MultipleFramesExample ob=new MultipleFramesExample();
ob.fun();
}
}
Run Code Online (Sandbox Code Playgroud)
Mainview.java创建Jframe和Buttons等.
public class MainView extends JFrame implements ActionListener {
JFrame frame1;
MainView mV=null;
JCheckBox chinButton;
JRadioButton birdButton;
MultipleFramesExample ob=new MultipleFramesExample();
JPanel panel = new JPanel(new BorderLayout());
public void createMainView() {
mV = new MainView();
frame1 = new JFrame();
frame1.setTitle("Main View");
frame1.setSize(50,50);
frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame1.setVisible(true);
birdButton = new JRadioButton("click");
frame1.getContentPane().add(birdButton);
birdButton.addActionListener(this);
}
public void actionPerformed(ActionEvent event) {
Container contentPane = frame1.getContentPane();
contentPane.setLayout(new FlowLayout());
JCheckBox jb=new JCheckBox();
if (event.getActionCommand().equals(birdButton)) {
frame1.add(new JCheckBox("JIL1"));
frame1.add(new JCheckBox("JIL2"));
frame1.add(new JCheckBox("JIL3"));
frame1.add(new JCheckBox("JIL4"));
frame1.add(new JCheckBox("JIL5"));
frame1.setVisible(true);
//panel.add(jb, BorderLayout.PAGE_START);
// panel.getComponentCount();
}
}
public void fun1(){
}
}
Run Code Online (Sandbox Code Playgroud)
有可能像这样创建它们吗?
更新:这是一个有效的例子:
按钮1 http://img709.imageshack.us/img709/1640/radiobutton1.png 按钮2 http://img822.imageshack.us/img822/5313/radiobutton2.png
public class MainView extends JFrame implements ActionListener{
JRadioButton radioButton1 = new JRadioButton("Button 1");
JRadioButton radioButton2 = new JRadioButton("Button 2");
JCheckBox checkBox = new JCheckBox("CheckBox");
ButtonGroup buttonGroup = new ButtonGroup();
public MainView() {
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setSize(300, 100);
setLayout(new GridLayout());
buttonGroup.add(radioButton1);
buttonGroup.add(radioButton2);
radioButton1.addActionListener(this);
radioButton2.addActionListener(this);
radioButton2.setSelected(true); // remove to have no button selected
// ActionListener for CheckBox
checkBox.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO: Your action here
}
});
getContentPane().add(radioButton1);
getContentPane().add(radioButton2);
getContentPane().add(checkBox);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
checkBox.setVisible(radioButton2.isSelected());
}
public static void main(String[] args) {
new MainView();
}
}
Run Code Online (Sandbox Code Playgroud)
原帖
您的代码有些问题:
JCheckBox只要单击按钮,就可以创建新的es.如果用户单击两次,则会创建更多复选框.frame1.add(new JCheckBox("JIL"));frame1.getContentPane().add(jb); 请尝试以下步骤:
创建并添加测试所需的所有对象(JRadioButton,JCheckBox)并确保它们都显示(如果添加两者,请选中" 使用布局管理器和布局管理器的可视指南",但不要同时看到它们).
在你的ActionListener,使用类似的东西checkBox.setVisible(radioButton.isSelected()),根据你的radioButton状态切换checkBox的可见性.
| 归档时间: |
|
| 查看次数: |
13194 次 |
| 最近记录: |