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

📄 modeling.java

📁 用Java开发的实用数学建模程序 简单易懂 初学者可以用来学习java知识
💻 JAVA
字号:
/*
 *@(#)Modeling.java 2.0 2005/04/21
 *
 *清华大学 精密仪器与机械学系
 *范灿升 fancansheng@163.com
 */

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
//导入系统类

import input.EquationInput;
import input.GraphInput;
import input.FitInput;
import lib.Library;
import lib.Splash;
//导入自定义类

/**
 *这个类是整个程序的主类,提供一些基于主界面的操作,用户从主界面中选择执行程序相应的功能。
 *@version	2.0, 2005/04/21
 *@author	范灿升
 */
public class Modeling implements ActionListener
{
	private static JMenuItem linearFit;
	private static JMenuItem polyFit;
	private static JMenuItem spline;
	private static JMenuItem multiFit;
	
	private static JMenuItem dijkstra;
	private static JMenuItem hamilton;
	private static JMenuItem huffman;
	
	private static JMenuItem solveLinear;
	private static JMenuItem linearProgram;
	
	private static JMenuItem homePage;
	private static JMenuItem about;
	
	private static JFrame mainFrame;
	private static JPanel mainPanel;
	private static JPanel inputPanel;
	private static JPanel computePanel;
	
	/**
	 *main方法,Java应用程序的入口
	 *@param	args 参数字符串数组
	 */
	public static void main(String args[])
	{
		new Splash();
		mainFrame=new JFrame("实用数学建模程序");
		Container mainContainer=mainFrame.getContentPane();
		BorderLayout frameLayout=new BorderLayout();
		mainContainer.setLayout(frameLayout);
		mainFrame.setFont(Library.font);
		mainFrame.setIconImage(Library.polyhedronIcon.getImage());
		mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		mainFrame.setResizable(false);
		//设置窗体的一些主要参数
		
		BorderLayout mainPanelLayout=new BorderLayout();
		mainPanel=new JPanel(true);
		inputPanel=new JPanel(true);
		computePanel=new JPanel(true);
		mainPanel.setLayout(mainPanelLayout);
		//用JPanel进行组装
		
		JMenuBar menuBar=new JMenuBar();
		JMenu fit=new JMenu("拟合与插值");
		JMenu graph=new JMenu("图论基本算法");
		JMenu others=new JMenu("其他算法");
		JMenu help=new JMenu("帮助");
		
		linearFit=new JMenuItem("一元线性回归");
		polyFit=new JMenuItem("多项式回归");
		spline=new JMenuItem("三次样条插值");
		multiFit=new JMenuItem("多元线性回归");
		fit.add(linearFit);
		fit.add(polyFit);
		//////////////////
		//fit.add(spline);
		//////////////////
		fit.add(multiFit);
		dijkstra=new JMenuItem("最短路计算");
		hamilton=new JMenuItem("旅行商问题");
		huffman=new JMenuItem("哈夫曼树");
		graph.add(dijkstra);
		graph.add(hamilton);
		graph.add(huffman);
		solveLinear=new JMenuItem("求解线性代数方程组");
		linearProgram=new JMenuItem("线性规划");
		others.add(solveLinear);
		////////////////////////////
		//others.add(linearProgram);
		////////////////////////////
		homePage=new JMenuItem("访问作者主页");
		about=new JMenuItem("关于...");
		help.add(homePage);
		help.add(about);
		
		fit.setFont(Library.font);
		graph.setFont(Library.font);
		others.setFont(Library.font);
		help.setFont(Library.font);
		
		linearFit.setFont(Library.font);
		polyFit.setFont(Library.font);
		spline.setFont(Library.font);
		multiFit.setFont(Library.font);
		dijkstra.setFont(Library.font);
		hamilton.setFont(Library.font);
		huffman.setFont(Library.font);
		solveLinear.setFont(Library.font);
		linearProgram.setFont(Library.font);
		homePage.setFont(Library.font);
		about.setFont(Library.font);
		//设置字体
		
		menuBar.add(fit);
		menuBar.add(graph);
		menuBar.add(others);
		menuBar.add(help);
		//添加菜单项
		
		Modeling modeling=new Modeling();
		linearFit.addActionListener(modeling);
		polyFit.addActionListener(modeling);
		spline.addActionListener(modeling);
		multiFit.addActionListener(modeling);
		dijkstra.addActionListener(modeling);
		hamilton.addActionListener(modeling);
		huffman.addActionListener(modeling);
		solveLinear.addActionListener(modeling);
		homePage.addActionListener(modeling);
		about.addActionListener(modeling);
		//增加动作
		
		mainContainer.add(mainPanel,BorderLayout.CENTER);
		mainFrame.setJMenuBar(menuBar);
		mainFrame.pack();
		mainFrame.setVisible(true);
	}
	
	/**
	 *由ActionListener所指定的方法,响应用户单击菜单时的动作
	 *@param e		单击按钮所产生的事件
	 */
	public void actionPerformed(ActionEvent e)
	{
		if(e.getSource()==linearFit||e.getSource()==polyFit||e.getSource()==spline)
			new FitInput(mainFrame,inputPanel,computePanel,mainPanel).showOne();
		else if(e.getSource()==multiFit)
			new FitInput(mainFrame,inputPanel,computePanel,mainPanel).showMulti();
		else if(e.getSource()==dijkstra)
			new GraphInput(mainFrame,inputPanel,computePanel,mainPanel).showDijkstra();
		else if(e.getSource()==hamilton)
			new GraphInput(mainFrame,inputPanel,computePanel,mainPanel).showHamilton();
		else if(e.getSource()==huffman)
			new GraphInput(mainFrame,inputPanel,computePanel,mainPanel).showHuffman();
		else if(e.getSource()==solveLinear)
			new EquationInput(mainFrame,inputPanel,computePanel,mainPanel).showPanel();
		else if(e.getSource()==homePage)
		{
			try
			{
				Runtime.getRuntime().exec("explorer http://learn.tsinghua.edu.cn/homepage/2003010533/index.htm");
			}
			catch(Exception runE)
			{
				JOptionPane.showMessageDialog(mainFrame,"程序出错,无法打开个人主页。","打开错误",JOptionPane.ERROR_MESSAGE);
			}
		}
		else if(e.getSource()==about)
			new Splash();
	}
	//为菜单项添加动作
}

⌨️ 快捷键说明

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