请教如何将多个实现不同功能的程序组成一个程序?? 俺做课程设计,一共有4大题作业,分别实现的是不同的功能。有排序,迷宫,高精度四则运算,最短路径。它们分别在不同的包里面,现在我想做的是,在对话框中产生四个算法的选项,可以分别进入各自的程序算法实现各自功能。问题是:我现在每一个程序都是一个单独的个体,有自己的main()方法,请问可以通过什么方法来使得可以实现类似于菜单面板的东西,可以选择所需的程序。不知我说明白了没。谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以做成一个算法一个类或者一个函数,在main里面写菜单控制,这样改少点。要不用swing,事件驱动啊,不过要改不少吧 没关系,有自己的main()方法也没事儿。 import 进来就行,需要用什么就用什么呗。 classpath 设好了。 答:你做一个菜单,简单的话,就用命令行做。根据菜单选项,要调用那个算法程序,如:类A代表一个算法程序,你就直接调用:A.main(null)就行了,若要参数,则:A.main(串数组)。以上仅供你参考 做简单点的,把你做好的四个类import进来,做个界面,4个按钮,监听单击事件,判断事件源,如果是“排序按钮”,假设你的排序的程序是Sort类,那么就 new sort();它就在cmd窗口执行了。其它也如此。 对哦,得调用main,那就是new Sort().main(null); 试了一下,编了个粗糙的,可参考。import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Test extends JFrame implements ActionListener{ JButton b1 = new JButton("排序"); JButton b2; JButton b3; JButton b4; Container c; public Test(){ super("Test"); c = getContentPane(); c.setLayout(new FlowLayout(FlowLayout.LEFT)); b1 = new JButton("排序"); b2 = new JButton("迷宫"); b3 = new JButton("四则运算"); b4 = new JButton("最短路径"); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); b4.addActionListener(this); c.add(b1); c.add(b2); c.add(b3); c.add(b4); setSize(200,100); setLocation(400,200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } public void actionPerformed(ActionEvent e){ if(e.getSource() == b1){ //主要改这里的类名字和构造方法的参数 new Sort().main(null); } if(e.getSource() == b2){ //主要改这里的类名字和构造方法的参数 new Maze().main(null); } if(e.getSource() == b3){ //主要改这里的类名字和构造方法的参数 new Opera().main(null); } if(e.getSource() == b4){ //主要改这里的类名字和构造方法的参数 new Path().main(null); } } public static void main(String[] args){ new Test(); }} 建议把代码改好吧,让你的算法类不要带main,只要匿名一个对象即可执行,你都能编这些,还搞不好这点啊,行的。你自己编个cmd命令下控制的菜单也不难啊,比你编的算法容易多了。提供一小段:构造一个能处理菜单的类,主要有以下方法:1.显示菜单提示信息,最后让用户输入菜单选项的函数menu_select():输入字符串,返回一个整数。2.处理函数:void handle_menu(void){ for(;;) { switch ( menu_select() )//此处会让你调用完了子菜单后返回主菜单,可先清下屏幕,再显示选择菜单 { case 1: 排序类 break; case 2: 迷宫类 break; case 3: 四则运算类 break; case 4: 最短路径类 case '0': System.out.pritnln("谢谢使用"); System.exit(0); } 你也可以通过继承这些类,来重写这个main()方法。 求高手帮忙这段代码哪里错了 哪位有关于Jfreechart柱状图下探(就是带超链接的)实现代码和view 分开的。急需 谢谢大家帮忙 JTextPane 复制图像问题,懂的请进。。。谢谢! JAVA关于类的加载和数据成员的初始化的次序!!谢谢!! [转贴] 论J2EE程序员武功修为(有点意识哈!) 请帮忙看一下这个访问权限的问题,谢谢哦:) java可不可以使用com,activeX或者之类的东西? 一个线程的问题。。。。。。。。 Tomcat怎么装呀 java平台 鼠标事件!!! 怎么运行Applicationa
如果是“排序按钮”,假设你的排序的程序是Sort类,那么就 new sort();它就在cmd窗口执行了。
其它也如此。
import java.awt.event.*;
import javax.swing.*;public class Test extends JFrame implements ActionListener{
JButton b1 = new JButton("排序");
JButton b2;
JButton b3;
JButton b4;
Container c;
public Test(){
super("Test");
c = getContentPane();
c.setLayout(new FlowLayout(FlowLayout.LEFT));
b1 = new JButton("排序");
b2 = new JButton("迷宫");
b3 = new JButton("四则运算");
b4 = new JButton("最短路径");
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
c.add(b1);
c.add(b2);
c.add(b3);
c.add(b4);
setSize(200,100);
setLocation(400,200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public void actionPerformed(ActionEvent e){
if(e.getSource() == b1){
//主要改这里的类名字和构造方法的参数
new Sort().main(null);
}
if(e.getSource() == b2){
//主要改这里的类名字和构造方法的参数
new Maze().main(null);
}
if(e.getSource() == b3){
//主要改这里的类名字和构造方法的参数
new Opera().main(null);
}
if(e.getSource() == b4){
//主要改这里的类名字和构造方法的参数
new Path().main(null);
}
}
public static void main(String[] args){
new Test();
}
}
你都能编这些,还搞不好这点啊,行的。
你自己编个cmd命令下控制的菜单也不难啊,比你编的算法容易多了。提供一小段:
构造一个能处理菜单的类,主要有以下方法:
1.显示菜单提示信息,最后让用户输入菜单选项的函数menu_select():输入字符串,返回一个整数。
2.处理函数:
void handle_menu(void)
{
for(;;)
{
switch ( menu_select() )
//此处会让你调用完了子菜单后返回主菜单,可先清下屏幕,再显示选择菜单
{
case 1:
排序类
break;
case 2:
迷宫类
break;
case 3:
四则运算类
break;
case 4:
最短路径类
case '0':
System.out.pritnln("谢谢使用");
System.exit(0);
}