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

📄 simppanel.java

📁 [数学问题]用分支定界发解线性混合整数规划问题
💻 JAVA
字号:
package com.sea0108.simpmethod;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Insets;

import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class SimpPanel extends JPanel
{
	private int matrixRow;
	private int matrixCol;
	public JTextField[][] textFieldsA;
	public JTextField[] textFieldsB;
	public JTextField[] textFieldsObj;
	public JComboBox[] comboBoxs;	
	public JCheckBox[] checkBoxs;
	public JComboBox comboBoxObj=new JComboBox(new String[]{"max","min"});
	public static final String[] SYMBOLS=new String[]{"=","≤","≥"};
	public static final Font FONT =new Font("Dialog",Font.ITALIC,12);	
	
	public SimpPanel(int row,int col)
	{
		matrixRow=row;
		matrixCol=col;		
		init();
	}
	
	private void init()
	{
		JPanel panelObj=new JPanel();
		JPanel panelRestriction=new JPanel();
		JPanel panelInteger=new JPanel();
		JPanel[] panels=new JPanel[4];
		JLabel[] labels=new JLabel[matrixRow];		
		GridBagLayout gridBag=new GridBagLayout();
		GridBagConstraints gridBagC=new GridBagConstraints();
		gridBagC.insets=new Insets(0,20,0,20);		
		
		this.setLayout(new BorderLayout());
		this.add(panelObj,"North");
		this.add(panelRestriction,"Center");
		this.add(panelInteger,"South");
		this.add(new JPanel(),"East");

		//init panelObj
		JLabel lbl=new JLabel("目标函数   ");
		JLabel lbl2=new JLabel(" = ");
		lbl.setFont(SimpFrame.FONT);
		lbl2.setFont(SimpFrame.FONT);
		comboBoxObj.setFont(SimpFrame.FONT);
		comboBoxObj.setPreferredSize(new Dimension(50,22));
		
		panelObj.add(lbl);
		panelObj.add(comboBoxObj);		
		panelObj.add(lbl2);	
		
		JLabel[] labelsObj=new JLabel[matrixCol];
		textFieldsObj=new JTextField[matrixCol];
		for(int i=0;i<matrixCol;i++)
		{
			String s=i<matrixCol-1 ? " +" : " ";
			labelsObj[i]=new JLabel("x"+(i+1)+s);
			labelsObj[i].setFont(FONT);					
			textFieldsObj[i]=new JTextField(3);
			
			panelObj.add(textFieldsObj[i]);
			panelObj.add(labelsObj[i]);
		}				
		
		//init panelRestriction
		panelRestriction.setLayout(gridBag);
		for(int i=0;i<panels.length;i++)
		{
			panels[i]=new JPanel();
			panelRestriction.add(panels[i]);
		}
				
		//init panelInteger		
		JLabel lbl4 = new JLabel("整数约束");
		lbl4.setFont(SimpFrame.FONT);
		panelInteger.add(lbl4);
		checkBoxs =new JCheckBox[matrixCol];
		for(int i=0;i<matrixCol;i++)
		{
			JLabel lbl3 = new JLabel("    x" + (i+1));
			lbl3.setFont(FONT);
			checkBoxs[i] = new JCheckBox("",true);
			panelInteger.add(lbl3);
			panelInteger.add(checkBoxs[i]);
		}				
				
		//init panels[0]
		panels[0].setLayout(new GridLayout(matrixRow,1,0,9));
		gridBag.setConstraints(panels[0],gridBagC);
		for(int i=0;i<matrixRow;i++)
		{
			labels[i]=new JLabel("约束"+ (i+1));
			labels[i].setFont(SimpFrame.FONT);
			panels[0].add(labels[i]);
		}
		
		//init panels[1]
		panels[1].setLayout(new GridLayout(matrixRow,matrixCol,6,5));
		textFieldsA=new JTextField[matrixRow][matrixCol];
		for(int i=0;i<matrixRow;i++)
			for(int j=0;j<matrixCol;j++)
			{
				textFieldsA[i][j]=new JTextField(4);
				panels[1].add(textFieldsA[i][j]);
			}
			
		//init panels[2] & panels[3]
		panels[2].setLayout(new GridLayout(matrixRow,1,0,5));	
		gridBag.setConstraints(panels[2],gridBagC);
		panels[3].setLayout(new GridLayout(matrixRow,1,0,5));

		comboBoxs=new JComboBox[matrixRow];
		textFieldsB=new JTextField[matrixRow];
		for(int i=0;i<matrixRow;i++)
		{
			// init panels[2]
			comboBoxs[i]=new JComboBox(SYMBOLS);
			comboBoxs[i].setFont(SimpFrame.FONT);
			comboBoxs[i].setPreferredSize(new Dimension(42,22));
			panels[2].add(comboBoxs[i]);

			//init panels[3]
			textFieldsB[i]=new JTextField(4);
			panels[3].add(textFieldsB[i]);
		}		
	}
}

⌨️ 快捷键说明

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