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

📄 settingsframe.java

📁 生物物种进化历程的演示
💻 JAVA
字号:
/* * Created on 12-Jun-2003 * * To change the template for this generated file go to * Window>Preferences>Java>Code Generation>Code and Comments */package TreeJuxtaposer;import java.awt.GraphicsConfiguration;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import javax.swing.event.ChangeListener;import javax.swing.event.ChangeEvent;import java.awt.event.ActionListener;import java.awt.event.ActionEvent;import java.awt.Dimension;import java.util.Iterator;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JSlider;import javax.swing.JLabel;import javax.swing.JTextField;import javax.swing.JButton;import javax.swing.JCheckBox;/** * @author jslack * * To change the template for this generated type comment go to * Window>Preferences>Java>Code Generation>Code and Comments */public class SettingsFrame extends JFrame implements ActionListener, ChangeListener {	private TreeJuxtaposer tj;	private final static String title = "Settings";	private JPanel leftPanel;	private JPanel rightPanel;		private JSlider linewidthSlider;	private final static JLabel linewidthLabel = new JLabel("Line Width");		private JSlider labelDensitySlider;	private final static JLabel labelDensityLabel = new JLabel("Label Density");		private JSlider bcnScoreSlider;	private final static JLabel bcnScoreLabel = new JLabel("BCN Score");		private JSlider labelAngleSlider;	private final static JLabel labelAngleLabel = new JLabel("Label Angle");		private final static JLabel fontLabel = new JLabel("Fonts");	private final static String fontString[] = {"Minimum", "Maximum"};	private JTextField fontEntry[];	private JButton fontButton[];	private final static int MIN_FONT = 0;	private final static int MAX_FONT = 1;	private final static int LEFT_MASK = 0;	private final static int RIGHT_MASK = 2;		private final static int MIN_FONT_INIT = 14;	private final static int MAX_FONT_INIT = MIN_FONT_INIT;	private final static int MIN_FONT_THRESHOLD = 5;	private final static int MAX_FONT_THRESHOLD = 50;		private JCheckBox linkCheck;	private final static String linkString = "Linked Navigation";		private final static JLabel showLabel = new JLabel("Show");	private JCheckBox showCheck[];	private final static String showString[] = {"Differences", "Labels"};	private final static int SHOW_DIFF = 0;	private final static int SHOW_LABEL = 1;		private final static JLabel dimLabel = new JLabel("Dimming");	private JCheckBox dimCheck[];	private final static String dimString[] = {"Marked", "Unmarked"};	private final static int DIM_MARK = 0;	private final static int DIM_UNMARK = 1;		private JButton snapshotButton;	private final static String snapshotLabel = "Snapshot"; 		private JCheckBox progressiveOn;	private final static String toggleProgRenderString = "Progressive Rendering";	/**	 * @throws java.awt.HeadlessException	 */	public SettingsFrame(TreeJuxtaposer tj)  {		super();		this.tj = tj;		this.setResizable(false);		initComponents();	}	/**	 * @param gc	 */	public SettingsFrame(TreeJuxtaposer tj, GraphicsConfiguration gc) {		super(gc);		this.tj = tj;		this.setResizable(false);		initComponents();	}	/**	 * @param title	 * @throws java.awt.HeadlessException	 */	public SettingsFrame(TreeJuxtaposer tj, String title)  {		super(title);		this.tj = tj;		this.setResizable(false);		initComponents();	}	/**	 * @param title	 * @param gc	 */	public SettingsFrame(TreeJuxtaposer tj, String title, GraphicsConfiguration gc) {		super(title, gc);		this.tj = tj;		this.setResizable(false);		initComponents();	}	private void initComponents()	{		GridBagConstraints gbc = new GridBagConstraints();		this.setTitle(title);		((JFrame)this).setLocation(10,30);		this.getContentPane().setLayout(new GridBagLayout());				gbc.ipadx = 0;		gbc.ipady = 0;		gbc.gridx = 0;		gbc.gridwidth = 1;		gbc.gridheight = 1;		gbc.gridy = 0;				leftPanel = new JPanel(new GridBagLayout());		linewidthSlider = new JSlider(JSlider.HORIZONTAL,1,4,(int)tj.linethickness);		linewidthSlider.setPreferredSize(new Dimension(80, linewidthSlider.getPreferredSize().height * 2));		linewidthSlider.setMajorTickSpacing(1);		linewidthSlider.setSnapToTicks(true);		linewidthSlider.setPaintTicks(true);		linewidthSlider.addChangeListener(this);				gbc.gridwidth = 2;		gbc.gridx = 0;		gbc.gridy = 0;		leftPanel.add(linewidthSlider, gbc);		gbc.gridy = 1;		leftPanel.add(linewidthLabel, gbc);				labelDensitySlider = new JSlider(JSlider.HORIZONTAL,0,200,10);		labelDensitySlider.setPreferredSize(new Dimension(150, labelDensitySlider.getPreferredSize().height * 2));		labelDensitySlider.setMajorTickSpacing(25);		labelDensitySlider.setSnapToTicks(false);		labelDensitySlider.setPaintTicks(true);		labelDensitySlider.addChangeListener(this);		//		Hashtable labelTable = new Hashtable();//		labelTable.put( new Integer( 10/10 ), new JLabel("HIgh") );//		labelTable.put( new Integer( 0 ), new JLabel("Low") );// best corresponding score slider				bcnScoreSlider = new JSlider(JSlider.HORIZONTAL,0,10,10);       bcnScoreSlider.setPreferredSize(new Dimension(100, bcnScoreSlider.getPreferredSize().height * 2));       bcnScoreSlider.setMajorTickSpacing( 1);       bcnScoreSlider.setSnapToTicks(false);       bcnScoreSlider.setPaintTicks(true);       bcnScoreSlider.addChangeListener(this);       bcnScoreSlider.setInverted(true);//	   bcnScoreSlider.setLabelTable(labelTable);//       bcnScoreSlider.setPaintLabels(true);			   labelAngleSlider = new JSlider(JSlider.HORIZONTAL,0,60,30);	   labelAngleSlider.setPreferredSize(new Dimension(100, labelAngleSlider.getPreferredSize().height * 2));	   labelAngleSlider.setMajorTickSpacing( 15);	   labelAngleSlider.setSnapToTicks(false);	   labelAngleSlider.setPaintTicks(true);	   labelAngleSlider.addChangeListener(this);		//		gbc.gridy = 2;//		gbc.ipady = 10;//		leftPanel.add(new JPanel(), gbc);		gbc.ipady = 0;		gbc.gridx = 4;		gbc.gridwidth = 4;		gbc.gridy = 0;		leftPanel.add(labelDensitySlider, gbc);		gbc.gridy = 1;		leftPanel.add(labelDensityLabel, gbc);		        gbc.gridx=0;        gbc.gridy=3;        gbc.gridwidth=2;           leftPanel.add(bcnScoreSlider, gbc);        gbc.gridy=4;        leftPanel.add(bcnScoreLabel, gbc);				gbc.gridx=4;		gbc.gridy=3;		gbc.gridwidth=2;   		leftPanel.add(labelAngleSlider, gbc);		gbc.gridy=4;		leftPanel.add(labelAngleLabel, gbc);    		gbc.gridy = 5;		gbc.ipady = 10;		leftPanel.add(new JPanel(), gbc);		gbc.ipady = 0;		gbc.gridy = 6;		gbc.gridx = 0;		gbc.gridwidth = 7;		leftPanel.add(fontLabel, gbc);		gbc.gridy = 7;		gbc.gridwidth = 1;		fontButton = new JButton[fontString.length * 2];		fontEntry = new JTextField[fontString.length];		for (int i = 0; i < fontString.length; i++)		{			fontButton[i | LEFT_MASK] = new JButton("<");			fontButton[i | RIGHT_MASK] = new JButton(">");			fontEntry[i] = new JTextField(3);			gbc.gridx = (i * 4);			leftPanel.add(fontButton[i | LEFT_MASK], gbc);			gbc.gridx += 1;			leftPanel.add(fontEntry[i], gbc);			gbc.gridy += 1;			gbc.gridx -= 1;			gbc.gridwidth = 3;			leftPanel.add(new JLabel(fontString[i]), gbc);			gbc.gridwidth = 1;			gbc.gridy -= 1;			gbc.gridx += 2;			leftPanel.add(fontButton[i | RIGHT_MASK], gbc);			gbc.ipadx = 10;			gbc.gridx += 1;			if (i < fontString.length - 1)				leftPanel.add(new JPanel(), gbc);			gbc.ipadx = 0;		}		fontButton[MIN_FONT | LEFT_MASK].addActionListener(this);		fontButton[MIN_FONT | RIGHT_MASK].addActionListener(this);		fontButton[MAX_FONT | LEFT_MASK].addActionListener(this);		fontButton[MAX_FONT | RIGHT_MASK].addActionListener(this);						gbc.gridx = 0;		gbc.gridwidth = 7;		gbc.gridy++;		JPanel linkCheckSpacer = new JPanel();		linkCheckSpacer.setPreferredSize(new Dimension(1, 40));		leftPanel.add(linkCheckSpacer, gbc);				gbc.anchor = GridBagConstraints.WEST;		gbc.gridy++;		linkCheck = new JCheckBox(linkString);		linkCheck.addActionListener(this);		leftPanel.add(linkCheck, gbc);						gbc.gridwidth = 4;		gbc.gridx+=3;		progressiveOn = new JCheckBox(toggleProgRenderString, true);		progressiveOn.addActionListener(this);		leftPanel.add(progressiveOn, gbc);				gbc.gridwidth = 1;										JPanel middlePanel = new JPanel();		middlePanel.setPreferredSize(new Dimension(20, 1));				rightPanel = new JPanel(new GridBagLayout());				gbc.anchor = GridBagConstraints.WEST;		gbc.gridx = 0;		gbc.gridy = 0;		rightPanel.add(showLabel, gbc);		gbc.gridy++;		showCheck = new JCheckBox[showString.length];		for (int i = 0; i < showString.length; i++)		{			showCheck[i] = new JCheckBox(showString[i]);			showCheck[i].addActionListener(this);			rightPanel.add(showCheck[i], gbc);			gbc.gridy++;		}				JPanel checkBoxSpacer = new JPanel();		checkBoxSpacer.setPreferredSize(new Dimension(1, 10));		rightPanel.add(checkBoxSpacer, gbc);		gbc.gridy++;				rightPanel.add(dimLabel, gbc);		gbc.gridy++;		dimCheck = new JCheckBox[dimString.length];		for (int i = 0; i < dimString.length; i++)		{			dimCheck[i] = new JCheckBox(dimString[i]);			dimCheck[i].addActionListener(this);			rightPanel.add(dimCheck[i], gbc);			gbc.gridy++;		}				rightPanel.add(new JPanel(), gbc); // spacer		gbc.gridy++;		snapshotButton = new JButton(snapshotLabel);		snapshotButton.addActionListener(this);		rightPanel.add(snapshotButton, gbc);				gbc.gridx = 0;		gbc.gridy = 0;		getContentPane().add(leftPanel, gbc);				// for spacing		gbc.gridx = 1;		gbc.gridy = 0;		getContentPane().add(middlePanel, gbc);				gbc.gridx = 2;		gbc.gridy = 0;		getContentPane().add(rightPanel, gbc);						pack();	}		public void stateChanged(ChangeEvent evt)	{		Object obj = evt.getSource();		if (obj == linewidthSlider)		{			int linewidth = linewidthSlider.getValue();			Iterator tdIter = tj.treeDrawers.iterator();			while (tdIter.hasNext()) {				AccordionTreeDrawerFinal atd = (AccordionTreeDrawerFinal)tdIter.next();				atd.setLineThickness(linewidth);				atd.newPixelDiv(linewidth, AccordionTreeDrawerFinal.Y);				atd.newPixelDiv(linewidth, AccordionTreeDrawerFinal.X);				atd.requestRedraw();			}		}		else if (obj == labelDensitySlider)		{			float labelBuffer = (float)labelDensitySlider.getValue();			Iterator tdIter = tj.treeDrawers.iterator();			while (tdIter.hasNext()) {				AccordionTreeDrawerFinal atd = (AccordionTreeDrawerFinal)tdIter.next();				atd.setLabelBuffer((int)labelBuffer);				atd.requestRedraw();			}		}		else if (obj == bcnScoreSlider)		{			float bcnScore = (float)bcnScoreSlider.getValue();			tj.setBcnScore(bcnScore/10);			Iterator tdIter = tj.treeDrawers.iterator();            tj.clearGroup(TreeJuxtaposer.diffGroup);            for (int i = 0; i < tj.treeDrawers.size()-1; i++) {//			tj.clearGroup(tj.diffGroup);			AccordionTreeDrawerFinal atdA = (AccordionTreeDrawerFinal)tj.treeDrawers.get(i);			AccordionTreeDrawerFinal atdB = (AccordionTreeDrawerFinal)tj.treeDrawers.get(TreeJuxtaposer.treeCount-1);			tj.doStructuralDiff((AccordionTreeDrawerFinal)tj.treeDrawers.get(i), 					 (AccordionTreeDrawerFinal)tj.treeDrawers.get(TreeJuxtaposer.treeCount-1), 					 TreeJuxtaposer.diffGroup);			tj.doStructuralDiff((AccordionTreeDrawerFinal)tj.treeDrawers.get(TreeJuxtaposer.treeCount-1), 					 (AccordionTreeDrawerFinal)tj.treeDrawers.get(i), 					 TreeJuxtaposer.diffGroup);        			tj.changedMarks();					tj.requestRedrawAll();							} 							} else if(obj == labelAngleSlider)	     	{				float angle = (float)labelAngleSlider.getValue();				if(angle <=10.0) angle = 10.0f;				Iterator tdIter = tj.treeDrawers.iterator();				while (tdIter.hasNext()) {						AccordionTreeDrawerFinal atd = (AccordionTreeDrawerFinal)tdIter.next();				    //				    	atd.setDrawAngle(angle);						atd.requestRedraw();					}	    	}	}		public void actionPerformed(ActionEvent evt)	{		Object obj = evt.getSource();		AccordionTreeDrawerFinal atd = null;		if (tj.treeDrawers != null && tj.treeDrawers.size() > 0)			atd = (AccordionTreeDrawerFinal)tj.treeDrawers.get(0);					if (obj == fontButton[MIN_FONT | LEFT_MASK]) {			if (atd == null) return;			if (atd.minFontHeight > MIN_FONT_THRESHOLD)				tj.decreaseMinFontHeight();			fontEntry[MIN_FONT].setText(new Integer(atd.minFontHeight).toString());		}		else if (obj == fontButton[MAX_FONT | RIGHT_MASK]) {			if (atd == null) return;			if (atd.maxFontHeight < MAX_FONT_THRESHOLD)				tj.increaseMaxFontHeight();			fontEntry[MAX_FONT].setText(new Integer(atd.maxFontHeight).toString());		}		else if (obj == fontButton[MIN_FONT | RIGHT_MASK]) {			if (atd == null) return;			if (atd.minFontHeight < atd.maxFontHeight)				tj.increaseMinFontHeight();			fontEntry[MIN_FONT].setText(new Integer(atd.minFontHeight).toString());		}		else if (obj == fontButton[MAX_FONT | LEFT_MASK]) {			if (atd == null) return;			if (atd.maxFontHeight > atd.minFontHeight)				tj.decreaseMaxFontHeight();			fontEntry[MAX_FONT].setText(new Integer(atd.maxFontHeight).toString());		}		else if (obj == linkCheck)		{			tj.toggleLinkedNav();			linkCheck.setSelected(tj.getLinkedNav());		}		else if (obj == dimCheck[DIM_MARK])		{			tj.toggleDimColors();			//dimCheck[DIM_MARK].setSelected(tj.getDimColors());		}		else if (obj == dimCheck[DIM_UNMARK])		{			tj.toggleDimBrite();			//dimCheck[DIM_UNMARK].setSelected(tj.getDimBrite());		}		else if (obj == showCheck[SHOW_DIFF])		{			tj.toggleShowDiffs();			showCheck[SHOW_DIFF].setSelected(tj.getShowDiffs());		}		else if (obj == showCheck[SHOW_LABEL])		{			tj.toggleDrawLabels();			showCheck[SHOW_LABEL].setSelected(tj.getDrawLabels());		}		else if (obj == snapshotButton)		{			tj.doSnapshot();		}		else if (obj == progressiveOn)		{			tj.setProgressiveOn(progressiveOn.isSelected());//			sj.setProgressiveOn(progressiveOn.isSelected());		}		else		{			System.out.println("Unknown event: " + obj);		}	}		public void observe()	{		prepareToShow();	}		public void prepareToShow()	{		if (tj != null && tj.treeDrawers != null)		{			if (tj.treeDrawers.size() > 0)			{				AccordionTreeDrawerFinal atd = (AccordionTreeDrawerFinal)tj.treeDrawers.get(0);				fontEntry[MIN_FONT].setText(new Integer(atd.minFontHeight).toString());				fontEntry[MAX_FONT].setText(new Integer(atd.maxFontHeight).toString());				linkCheck.setSelected(tj.getLinkedNav());				dimCheck[DIM_MARK].setSelected(tj.getDimColors());				dimCheck[DIM_UNMARK].setSelected(tj.getDimBrite());				//dimCheck[DIM_MARK].setSelected(false);				//dimCheck[DIM_UNMARK].setSelected(false);					showCheck[SHOW_DIFF].setSelected(tj.getShowDiffs());				showCheck[SHOW_LABEL].setSelected(tj.getDrawLabels());			}		}	}}

⌨️ 快捷键说明

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