亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? graphinput.java

?? 用Java開發(fā)的實(shí)用數(shù)學(xué)建模程序 簡(jiǎn)單易懂 初學(xué)者可以用來(lái)學(xué)習(xí)java知識(shí)
?? JAVA
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/*
 *@(#)GraphInput.java 2.0 2005/05/02
 *
 *清華大學(xué) 精密儀器與機(jī)械學(xué)系
 *范燦升 fancansheng@163.com
 */

package input;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.TitledBorder;
import java.util.Vector;
//導(dǎo)入系統(tǒng)類

import lib.Library;
import algorithm.GraphTheory;
import ADT.BinaryTree;
//導(dǎo)入自定義的類

/**
 *該類所提供的方法是供給類{@link Modeling}調(diào)用的,用以產(chǎn)生圖論算法的輸入界面。
 *<p>為提高計(jì)算精確度,圖中各矩陣元素必須是整型數(shù),而不能是浮點(diǎn)數(shù),
 *用戶在輸入前必須對(duì)待處理的圖進(jìn)行一下加工。
 *@version 2.0, 2005/05/02
 *@author 范燦升
 *@see Modeling
 *@see algorithm.GraphTheory
 */

public class GraphInput implements ActionListener
{
	private int i,j;
	private int n=0;//n是結(jié)點(diǎn)數(shù)
	private int m=0;//m是邊數(shù)
	private int[][] weightMatrix;//權(quán)矩陣
	private int[] leafVertex;//哈夫曼樹樹葉結(jié)點(diǎn)的權(quán)
	private JTextField[][] weightTextField;
	private JTextField[] leafTextField;
	private JButton dijkstraButton;
	private JButton dijkstraHelpButton;
	private JButton hamiltonButton;
	private JButton hamiltonHelpButton;
	private JButton huffmanButton;
	private JButton huffmanHelpButton;
	private JButton fillSymmetric;
	
	/**
	 *輸入面板的父組件。
	 */
	public Component parentComponent;
	
	/**
	 *數(shù)據(jù)在該面板上輸入,主要是鄰接矩陣、關(guān)聯(lián)矩陣等。
	 */
	public JPanel inputPanel;
	
	/**
	 *用來(lái)放置計(jì)算按鈕和幫助按鈕等。
	 */
	public JPanel computePanel;
	
	/**
	 *用來(lái)放置inputPanel的容器。
	 */
	public JPanel mainPanel;

	/**
	 *產(chǎn)生包含圖的矩陣相關(guān)參數(shù)的類。
	 *@param parentComponent	輸入面板的上一層組件
	 *@param inputPanel			數(shù)據(jù)在該面板上輸入
	 *@param computePanel		面板上的按鈕為計(jì)算用按鈕
	 *@param mainPanel			mainPanel是用來(lái)放置inputPanel的容器
	 */
	public GraphInput(Component parentComponent,JPanel inputPanel,JPanel computePanel,JPanel mainPanel)
	{
		this.parentComponent=parentComponent;
		this.inputPanel=inputPanel;
		this.computePanel=computePanel;
		this.mainPanel=mainPanel;
	}
	
	/**
	 *顯示輸入待計(jì)算最短路的圖的矩陣的界面。
	 *<p>用戶從該界面輸入圖的權(quán)矩陣。
	 */
	public void showDijkstra()
	{
		boolean pass=false;//用于標(biāo)記是否通過(guò)合法性檢驗(yàn)
		boolean secondTime=false;
		String tmp;
		
		while(!pass)
		{
			if(secondTime==true)
				tmp=JOptionPane.showInputDialog(parentComponent,"請(qǐng)輸入一個(gè)正整數(shù)!\n請(qǐng)重新輸入:","輸入結(jié)點(diǎn)數(shù)",JOptionPane.WARNING_MESSAGE);
			else
				tmp=JOptionPane.showInputDialog(parentComponent,"請(qǐng)輸入圖中結(jié)點(diǎn)的數(shù)目:","輸入結(jié)點(diǎn)數(shù)",JOptionPane.QUESTION_MESSAGE);
			try
			{
				if(tmp==null)
					return;
				n=-1;
				n=Integer.parseInt(tmp);
			}
			catch(NumberFormatException e)
			{
				secondTime=true;
			}
			if(n>=1)
				pass=true;
			else
				secondTime=true;
		}
		weightMatrix=new int[n][n];
		//輸入結(jié)點(diǎn)數(shù)并形成權(quán)矩陣
		
		GridLayout weightGridLayout=new GridLayout(n,n);
		inputPanel.setLayout(weightGridLayout);
		TitledBorder border=new TitledBorder("輸入有向正權(quán)圖的權(quán)矩陣");
		border.setTitleFont(Library.font);
		inputPanel.setBorder(border);
		//設(shè)置權(quán)矩陣布局
		
		weightTextField=new JTextField[n][n];
		inputPanel.removeAll();
		for(i=0;i<n;i++)
		{
			for(j=0;j<n;j++)
			{
				weightTextField[i][j]=new JTextField("0",Library.TEXTFIELD_LENGTH);
				weightTextField[i][j].setToolTipText("第"+(i+1)+"行,第"+(j+1)+"列");
				inputPanel.add(weightTextField[i][j]);
			}
		}
		//向inputPanel中添加輸入域
		for(i=0;i<n;i++)
			weightTextField[i][i].setEditable(false);
		//不能含有自環(huán)
		
		JScrollPane scrollPane=new JScrollPane(inputPanel);
		BoxLayout computePanelLayout=new BoxLayout(computePanel,BoxLayout.X_AXIS);
		computePanel.setLayout(computePanelLayout);
		
		dijkstraButton=new JButton("計(jì)算兩點(diǎn)間的最短路",new ImageIcon(Library.polyhedronIcont_Scaled));
		dijkstraButton.setFont(Library.font);
		computePanel.removeAll();
		computePanel.add(dijkstraButton);
		fillSymmetric=new JButton("自動(dòng)填充為對(duì)稱矩陣",new ImageIcon(Library.aidIcon_Scaled));
		fillSymmetric.setFont(Library.font);
		computePanel.add(fillSymmetric);
		dijkstraHelpButton=new JButton("幫助",new ImageIcon(Library.helpIcon_Scaled));
		dijkstraHelpButton.setFont(Library.font);
		computePanel.add(dijkstraHelpButton);
		
		mainPanel.removeAll();
		mainPanel.add(scrollPane,BorderLayout.CENTER);
		mainPanel.add(computePanel,BorderLayout.SOUTH);
		//布局
		
		dijkstraButton.addActionListener(this);
		fillSymmetric.addActionListener(this);
		dijkstraHelpButton.addActionListener(this);
		
		parentComponent.setSize(parentComponent.getPreferredSize());
		parentComponent.setVisible(true);
	}
	
	/**
	 *顯示輸入待計(jì)算求最短哈密頓回路的圖的權(quán)矩陣界面(即旅行商問(wèn)題,又稱推銷員問(wèn)題)。
	 *<p>用戶從該界面輸入圖的權(quán)矩陣。該圖必須是無(wú)向完全圖。
	 */
	public void showHamilton()
	{
		boolean pass=false;//用于標(biāo)記是否通過(guò)合法性檢驗(yàn)
		boolean secondTime=false;
		String tmp;
		
		while(!pass)
		{
			if(secondTime==true)
				tmp=JOptionPane.showInputDialog(parentComponent,"請(qǐng)輸入一個(gè)不小于3的正整數(shù)!\n請(qǐng)重新輸入:","輸入結(jié)點(diǎn)數(shù)",JOptionPane.WARNING_MESSAGE);
			else
				tmp=JOptionPane.showInputDialog(parentComponent,"請(qǐng)輸入圖中結(jié)點(diǎn)的數(shù)目:","輸入結(jié)點(diǎn)數(shù)",JOptionPane.QUESTION_MESSAGE);
			try
			{
				if(tmp==null)
					return;
				n=-1;
				n=Integer.parseInt(tmp);
			}
			catch(NumberFormatException e)
			{
				secondTime=true;
			}
			if(n>=3)
				pass=true;
			else
				secondTime=true;
		}
		weightMatrix=new int[n][n];
		//輸入結(jié)點(diǎn)數(shù)并形成權(quán)矩陣
		
		GridLayout weightGridLayout=new GridLayout(n,n);
		inputPanel.setLayout(weightGridLayout);
		TitledBorder border=new TitledBorder("輸入無(wú)向完全圖的權(quán)矩陣");
		border.setTitleFont(Library.font);
		inputPanel.setBorder(border);
		//設(shè)置權(quán)矩陣布局
		
		weightTextField=new JTextField[n][n];
		inputPanel.removeAll();
		for(i=0;i<n;i++)
		{
			for(j=0;j<n;j++)
			{
				weightTextField[i][j]=new JTextField(Library.TEXTFIELD_LENGTH);
				weightTextField[i][j].setToolTipText("第"+(i+1)+"行,第"+(j+1)+"列");
				inputPanel.add(weightTextField[i][j]);
			}
		}
		//向inputPanel中添加輸入域
		for(i=0;i<n;i++)
		{
			for(j=0;j<=i;j++)
				weightTextField[i][j].setEditable(false);
		}
		//保證輸入為無(wú)向圖
		for(i=0;i<n;i++)
			weightTextField[i][i].setText("0");
		//不能含有自環(huán)
		
		JScrollPane scrollPane=new JScrollPane(inputPanel);
		FlowLayout computePanelLayout=new FlowLayout();
		computePanel.setLayout(computePanelLayout);
		
		hamiltonButton=new JButton("計(jì)算最短哈密頓回路",new ImageIcon(Library.polyhedronIcont_Scaled));
		hamiltonButton.setFont(Library.font);
		computePanel.removeAll();
		computePanel.add(hamiltonButton);
		hamiltonHelpButton=new JButton("幫助",new ImageIcon(Library.helpIcon_Scaled));
		hamiltonHelpButton.setFont(Library.font);
		computePanel.add(hamiltonHelpButton);
		
		mainPanel.removeAll();
		mainPanel.add(scrollPane,BorderLayout.CENTER);
		mainPanel.add(computePanel,BorderLayout.SOUTH);
		//布局
		
		hamiltonButton.addActionListener(this);
		hamiltonHelpButton.addActionListener(this);
		computePanel.addMouseListener(new MouseAdapter()
			{
				public void mouseEntered(MouseEvent e)
				{
					for(i=0;i<n;i++)
					{
						for(j=0;j<i;j++)
							weightTextField[i][j].setText(weightTextField[j][i].getText());
					}
				}
			}
		);//自動(dòng)填充成對(duì)稱矩陣
		
		parentComponent.setSize(parentComponent.getPreferredSize());
		parentComponent.setVisible(true);
	}
	
	/**
	 *顯示輸入待構(gòu)造哈夫曼樹的樹葉結(jié)點(diǎn)的權(quán)的輸入界面。
	 *<p>用戶從該界面輸入樹葉結(jié)點(diǎn)的權(quán)。
	 */
	public void showHuffman()
	{
		boolean pass=false;//用于標(biāo)記是否通過(guò)合法性檢驗(yàn)
		boolean secondTime=false;
		String tmp;
		
		while(!pass)
		{
			if(secondTime==true)
				tmp=JOptionPane.showInputDialog(parentComponent,"請(qǐng)輸入一個(gè)不小于2的正整數(shù)!\n請(qǐng)重新輸入:","輸入樹葉結(jié)點(diǎn)數(shù)",JOptionPane.WARNING_MESSAGE);
			else
				tmp=JOptionPane.showInputDialog(parentComponent,"請(qǐng)輸入哈夫曼樹的樹葉結(jié)點(diǎn)的數(shù)目:","輸入樹葉結(jié)點(diǎn)數(shù)",JOptionPane.QUESTION_MESSAGE);
			try
			{

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本欧美久久久久免费播放网| 亚洲资源在线观看| 亚洲精品老司机| 免费成人av在线| 色国产精品一区在线观看| 日韩精品在线一区二区| 亚洲码国产岛国毛片在线| 丝袜诱惑亚洲看片| 国产婷婷色一区二区三区在线| 亚洲成国产人片在线观看| 成人国产精品视频| 欧美一级艳片视频免费观看| 亚洲精品国久久99热| 国产aⅴ综合色| 久久久久久日产精品| 日韩av网站免费在线| 欧美调教femdomvk| 樱花影视一区二区| av亚洲精华国产精华精华| 国产欧美日韩在线看| 国模冰冰炮一区二区| 91精品国产美女浴室洗澡无遮挡| 亚洲欧洲日韩av| av电影一区二区| 久久午夜免费电影| 国产一区二区伦理片| 欧美精品视频www在线观看| 亚洲一区二区视频在线观看| 99精品视频一区| 国产精品情趣视频| 成a人片国产精品| 国产亚洲精品中文字幕| 粉嫩一区二区三区在线看| 国产在线播放一区| 久久尤物电影视频在线观看| 亚洲成人一二三| 欧美一级免费大片| 丝袜诱惑亚洲看片| 精品福利在线导航| 国产精品1024| 国产精品成人一区二区三区夜夜夜| 丁香婷婷综合五月| 久久久精品蜜桃| 91在线云播放| 亚洲综合激情另类小说区| 9191成人精品久久| 精品一区二区三区蜜桃| 久久久久久毛片| 99精品国产视频| 一二三区精品视频| 欧美成人免费网站| 成人激情校园春色| 亚洲综合免费观看高清在线观看| 欧美亚洲综合另类| 精彩视频一区二区| 日韩毛片精品高清免费| 欧美日韩三级一区二区| 黄一区二区三区| 亚洲图片欧美激情| 欧美丰满少妇xxxxx高潮对白| 九九在线精品视频| 亚洲色图制服诱惑| 欧美日韩国产综合视频在线观看| 久久99精品国产麻豆婷婷洗澡| 国产欧美一区二区三区在线看蜜臀 | 亚洲视频一区在线| 欧美美女激情18p| 国产成人av影院| 午夜av区久久| 国产精品福利一区| 7777精品伊人久久久大香线蕉 | 亚洲综合久久av| 欧美一区二区视频在线观看2022| 国产精品一线二线三线| 一区二区三区蜜桃| 久久久久久免费毛片精品| 欧美日韩视频不卡| 成人免费毛片片v| 亚洲成av人片在线观看无码| 日本一区二区综合亚洲| 欧美三级乱人伦电影| 国产99精品国产| 精品一区二区三区的国产在线播放| 中文字幕一区二区三| 欧美精品一区二区三区蜜桃| 色狠狠一区二区三区香蕉| 国产精品一二一区| 久久国产综合精品| 亚洲在线视频一区| 国产精品二区一区二区aⅴ污介绍| 欧美另类videos死尸| 色婷婷综合视频在线观看| 国产在线精品一区在线观看麻豆| 香蕉av福利精品导航| 亚洲日本va午夜在线影院| 精品成人一区二区三区四区| 制服丝袜亚洲网站| 欧美精品九九99久久| 欧洲亚洲精品在线| 色噜噜久久综合| www.在线欧美| 国产盗摄一区二区三区| 激情欧美日韩一区二区| 日本不卡视频在线| 午夜精品久久一牛影视| 亚洲精品高清在线观看| 亚洲日本在线看| 亚洲欧美一区二区三区极速播放| 中文字幕乱码亚洲精品一区| 久久久另类综合| 26uuu精品一区二区| 久久综合九色综合欧美亚洲| 精品欧美黑人一区二区三区| 9191精品国产综合久久久久久| 91国产丝袜在线播放| 国内精品免费在线观看| 国产一区91精品张津瑜| 久久电影网电视剧免费观看| 蜜臀久久99精品久久久久久9| 麻豆高清免费国产一区| 日本在线播放一区二区三区| 蜜臀av性久久久久蜜臀av麻豆| 奇米一区二区三区| 久久草av在线| 国内不卡的二区三区中文字幕 | 欧美精品日韩精品| 欧美色电影在线| 3d成人动漫网站| 欧美精品一区二区三区蜜桃 | 一区二区成人在线| 亚洲国产精品一区二区久久 | 日韩欧美一级在线播放| 欧美顶级少妇做爰| 欧美成人aa大片| 中文字幕av不卡| 亚洲精品视频观看| 麻豆一区二区三| 成人小视频免费观看| 丁香另类激情小说| 欧美性猛片aaaaaaa做受| 3d成人h动漫网站入口| 国产亚洲一区二区三区在线观看 | 91啦中文在线观看| 欧美日韩一区小说| 久久久久成人黄色影片| 亚洲人成在线播放网站岛国| 五月综合激情网| 国产精品性做久久久久久| 91麻豆精东视频| 久久综合九色综合97婷婷| 亚洲欧美综合网| 精品一区二区免费视频| www.在线欧美| 欧美精品一区二区精品网| 亚洲天堂精品在线观看| 久久国产精品无码网站| 色哟哟国产精品| 精品日韩av一区二区| 亚洲精品伦理在线| 国内成人免费视频| 欧美视频一区二区三区四区| 久久久亚洲欧洲日产国码αv| 亚洲日本免费电影| 国产91精品精华液一区二区三区| 国产主播一区二区| 欧美少妇性性性| 亚洲视频在线一区二区| 国模少妇一区二区三区| 欧美性猛交一区二区三区精品| 欧美国产欧美亚州国产日韩mv天天看完整 | 国产米奇在线777精品观看| 99精品视频一区| 国产欧美日韩另类视频免费观看| 轻轻草成人在线| 欧美一级久久久| 国产区在线观看成人精品| 三级精品在线观看| 欧美性猛交xxxxxxxx| 中文字幕亚洲一区二区av在线| 国模一区二区三区白浆| 日韩三级在线观看| 亚洲第一av色| 欧洲一区二区av| 一区二区三区中文字幕| www.色综合.com| 欧美国产国产综合| 国产白丝网站精品污在线入口| 欧美精品一区视频| 久久精品噜噜噜成人88aⅴ| 91精品久久久久久久99蜜桃 | 精品一区二区在线播放| 欧美伦理视频网站| 91丨九色丨尤物| 亚洲精品高清在线观看| 日韩一区二区三区高清免费看看| 精品剧情在线观看| 九色综合狠狠综合久久| 欧美mv日韩mv| 国产乱子伦视频一区二区三区 | 亚洲丝袜美腿综合|