testernamepanel.java

来自「Java version of ABC/HR comparator v0.5. 」· Java 代码 · 共 60 行

JAVA
60
字号
package abchr.gui.modulecontrols;

import abchr.ProjectModule;
import abchr.TesterNameModule;
import guiutils.LineLayout;

import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;

public class TesterNamePanel extends JPanel implements ModuleControl {
	private TesterNameModule module;
	private JCheckBox nameCheckBox=new JCheckBox("Show name in results file",false);
	private JTextField textField=new JTextField(20);

	public TesterNamePanel(TesterNameModule module) {
		super(new LineLayout());
		//this.add(new JLabel("Your Name: "));
		this.add(nameCheckBox);
		this.add(textField);
		setModule(module);
		textField.getDocument().addDocumentListener(new DocumentListener() {
			public void changedUpdate(DocumentEvent e){updateModule();}
			public void insertUpdate(DocumentEvent e){updateModule();}
			public void removeUpdate(DocumentEvent e){updateModule();}
		});
		nameCheckBox.addChangeListener(new ChangeListener() {
			public void stateChanged(ChangeEvent e) {
				textField.setEnabled(nameCheckBox.isSelected());
				textField.setEditable(nameCheckBox.isSelected());
				updateModule();
			}
		});
	}

	public TesterNamePanel(){this(null);}

	private void updateModule() {
		if(module==null){return;}
		module.setTesterName(nameCheckBox.isSelected()?textField.getText():"");
	}

	public void setModule(ProjectModule module) {
		nameCheckBox.setEnabled(module!=null);
		textField.setEnabled(module!=null && nameCheckBox.isSelected());
		textField.setEditable(module!=null && nameCheckBox.isSelected());
		this.module=(TesterNameModule)module;
		if(module!=null) {
			String testerName=this.module.getTesterName();
			nameCheckBox.setSelected(!testerName.equals(""));
			textField.setText(testerName);
		} else {
			nameCheckBox.setSelected(false);
			textField.setText("");
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?