【SWT】 Button 处理 Checkbox 按钮的选中与反选事件

介绍:

在使用 Java SWT(Standard Widget Toolkit)创建图形用户界面时,经常需要处理按钮的选中和反选事件。本文将介绍如何通过添加 SelectionListener 监听器来实现按钮选中与反选事件的处理,并相应地修改相关变量的值。

示例代码:


import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;

public class CheckboxExample {
    
    
	private boolean checked = false;

	public static void main(String[] args) {
    
    
		Display display = new Display();
		Shell shell = new Shell(display);
		shell.setLayout(new GridLayout());
		shell.setMinimumSize(360, 360);
		shell.setText("Checkbox Example");

		CheckboxExample example = new CheckboxExample();
		example.createCheckbox(shell);

		shell.pack();
		shell.open();

		while (!shell.isDisposed()) {
    
    
			if (!display.readAndDispatch()) {
    
    
				display.sleep();
			}
		}

		display.dispose();
	}

	private void createCheckbox(Shell shell) {
    
    
		Composite cmp = new Composite(shell, SWT.NONE);
		cmp.setLayout(new GridLayout());
		cmp.setLayoutData(new GridData(GridData.FILL_BOTH | GridData.CENTER));
		
		Button ckBox = new Button(cmp, SWT.CHECK);
		ckBox.setText("Check me");
		ckBox.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.CENTER));

		Label label = new Label(cmp, SWT.NONE);
		label.setText("value: " + ckBox.getSelection());
		label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.CENTER));

		ckBox.addSelectionListener(new SelectionAdapter() {
    
    
			@Override
			public void widgetSelected(SelectionEvent e) {
    
    
				Button button = (Button) e.widget;
				checked = button.getSelection();
				label.setText("value: " + checked);
			}
		});
	}
}

效果

未选中时
在这里插入图片描述

选中时
在这里插入图片描述
动图:
在这里插入图片描述

总结:
通过添加 SelectionListener 监听器,可以轻松处理 SWT 的按钮选中与反选事件。在示例代码中,我们创建了一个复选框按钮,并将其选中状态赋值给一个布尔型变量 checked。然后使用 Label 将 CheckBox 状态回显到界面。示例中通过监听器中的回调方法,对 Checkbox 的值进行处理,也可以 进行进一步处理,例如打印选中状态或执行其他相关操作。

猜你喜欢

转载自blog.csdn.net/m0_47406832/article/details/132744068
swt