⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 comparisonpanel.java

📁 Java version of ABC/HR comparator v0.5. by schnofler. Runs on Sun JRE 1.5 or later
💻 JAVA
字号:
package abchr.gui.modulecontrols;

import abchr.ComparisonModule;
import abchr.ProjectModule;
import abchr.gui.SingleComparisonPanel;
import guiutils.LineLayout;

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

public class ComparisonPanel extends JPanel implements ModuleControl {
	private class SelectSampleAction extends AbstractAction {
		private int sample;

		public SelectSampleAction(int sample) {
			this.sample=sample;
		}

		public void actionPerformed(ActionEvent e) {
			if(panels.length<sample){return;}
			panels[sample].requestFocus();
		}
	}

	private ComparisonModule comparisonModule;
	private SingleComparisonPanel[] panels;

	public ComparisonPanel(ComparisonModule comparisonModule) {
		super(new LineLayout(1,5,LineLayout.CENTER,false));
		setModule(comparisonModule);
		InputMap im=this.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
		ActionMap am=this.getActionMap();
		for(int i=1;i<=9;i++) {
			im.put(KeyStroke.getKeyStroke(Character.forDigit(i,10)),"SelectSample"+i);
			am.put("SelectSample"+i,new SelectSampleAction(i-1));
		}
	}

	public ComparisonPanel(){this(null);}

	public void setModule(ProjectModule module) {
		this.comparisonModule=(ComparisonModule)module;
		this.removeAll();
		if(comparisonModule==null){this.setPreferredSize(new Dimension(400,300));return;}
		panels=new SingleComparisonPanel[comparisonModule.getGroupCount()];
		for(int i=0;i<comparisonModule.getGroupCount();i++) {
			SingleComparisonPanel singleCP=new SingleComparisonPanel(""+(i+1),comparisonModule.getGroup(i));
			panels[i]=singleCP;
			if(i==0) {
				Insets insets=this.getInsets();
				Dimension singleCPSize=singleCP.getPreferredSize();
				this.setPreferredSize(new Dimension((singleCPSize.width+1)*comparisonModule.getGroupCount()+insets.left+insets.right,singleCPSize.height+insets.top+insets.bottom+20));
			}
			this.add(singleCP);
		}
	}
}

⌨️ 快捷键说明

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