SWT radio button 分两组怎么弄

我现在有5个radiobutton想分两组,可以选择两个怎么弄?有谁知道吗!!!... 我现在有5个radio button 想分两组,可以选择两个 怎么弄?
有谁知道吗!!!
展开
 我来答
摸摸媽Cy
推荐于2016-08-06
知道答主
回答量:1
采纳率:0%
帮助的人:0
展开全部
不知道你的意思是不是有两个类别的单选框,5个单选项目需要2个分组来处理,每个分组可以选择一个,例如:男性和女性两个单选框,放在性别分类中,然后是游泳,读书和睡觉3种爱好,放在爱好分类种,性别和爱好种的单选框都只能选择一个,但是不能互相影响,对吗?
其实只要增加一个group的SWT组件就可以了,示例代码如下
package com.yry.applications;

import org.eclipse.swt.widgets.*;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Shell;

public class TestRadio {

/**
* Launch the application
* @param args
*/
public static void main(String[] args) {
try {
TestRadio window = new TestRadio();
window.open();
} catch (Exception e) {
e.printStackTrace();
}
}

/**
* Open the window
*/
public void open() {
//初始化窗体资源,并设置窗体名称
final Display display = Display.getDefault();
final Shell shell = new Shell();
shell.setSize(500, 284);
shell.setText("单选按钮测试");
//

shell.open();

//声明一个分组类
final Group group = new Group(shell, SWT.NONE);
//设置分组类名称
group.setText("性别");
//设置分组类的位置和大小
group.setBounds(22, 10, 188, 89);

//声明一个单选按钮,注意,这里是增加到开始创建的第一个分组框种
final Button button_1 = new Button(group, SWT.RADIO);
//设置单选按钮的名称
button_1.setText("男");
//设置单选按钮的位置和大小
button_1.setBounds(10, 26, 93, 16);

final Button button_2 = new Button(group, SWT.RADIO);
button_2.setSelection(true);
button_2.setText("女");
button_2.setBounds(10, 63, 93, 16);

final Group group_1 = new Group(shell, SWT.NONE);
group_1.setText("爱好");
group_1.setBounds(22, 122, 188, 118);

final Button button_3 = new Button(group_1, SWT.RADIO);
button_3.setSelection(true);
button_3.setText("游泳");
button_3.setBounds(10, 23, 93, 16);

final Button button_4 = new Button(group_1, SWT.RADIO);
button_4.setText("看书");
button_4.setBounds(10, 57, 93, 16);

final Button button_5 = new Button(group_1, SWT.RADIO);
button_5.setText("睡觉");
button_5.setBounds(10, 92, 93, 16);

final Button button = new Button(shell, SWT.NONE);
button.addSelectionListener(new SelectionAdapter() {
//按钮单击事件,显示两个组的选择情况
public void widgetSelected(final SelectionEvent e) {
//Button类是Control的子类,可以直接强转
Control[] c=group.getChildren();
Button tmpb=null;
StringBuffer result=new StringBuffer();
result.append("性别分组选择的结果是:");
for (Control control : c) {
tmpb=(Button) control;
if(tmpb.getSelection()){
result.append(tmpb.getText());
}
}
result.append("\n爱好分组选择的结果是:");
c=group_1.getChildren();
for (Control control : c) {
tmpb=(Button) control;
if(tmpb.getSelection()){
result.append(tmpb.getText());
}
}

MessageBox msg=new MessageBox(shell,SWT.ICON_INFORMATION|SWT.OK);
msg.setText("选择结果");
msg.setMessage(result.toString());
msg.open();
}
});
button.setText("显示结果");
button.setBounds(295, 161, 101, 42);
shell.layout();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
}

}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ㄜ逍遥ㄆ
2010-04-07 · TA获得超过219个赞
知道小有建树答主
回答量:210
采纳率:0%
帮助的人:169万
展开全部
用Group分
假设两个组被放在一个Composite(Comp)上

Group one = new Group(comp, SWT.SHADOW_ETCHED_IN);
//设置Group的Layout为GridLayout 2列
one.setLayout(new GridLayout(2, false));
//设置Group的LayoutData
one.setLayoutData(new GridData(GridData.FILL_BOTH));
然后在Group上建RadioButton
Button btn1 = new Button(one, SWT.RADIO);
Button btn2 = new Button(one, SWT.RADIO);

Group two = new Group(comp, SWT.SHADOW_ETCHED_IN);
//设置Group的Layout为GridLayout 3列
two.setLayout(new GridLayout(3, false));
//设置Group的LayoutData
two.setLayoutData(new GridData(GridData.FILL_BOTH));
Button btn3 = new Button(two, SWT.RADIO);
Button btn4 = new Button(two, SWT.RADIO);
Button btn5 = new Button(two, SWT.RADIO);

有什么问题,补充吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式