两个jframe类a,b,类中都含有main方法。我的意思是,如何点击一个jframe   a中按钮,就调用了另一个jframe,不是单单的显示,而是创建了一个新的程序。我用   new   b().main(new   String[0]);方法虽然能显示一个frame,但是如果关闭这个frame,原来的frame也关闭了,怎么能让原先的frame仍然在那?   

解决方案 »

  1.   

    请查询process, runtime相关api
      

  2.   

    我提出一个设想不知道能不能成,让那个jframe b 再实现个Runnable接口,哈哈,知道我想干嘛了吧,Thread,分个线程出来不就OK了吗,如果能成别忘了告诉我一声阿,呵呵,我自己没试,靠你啦
      

  3.   

    //应该不会出现你说的那种情况
    package com.ray.tests.newJFrame;import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;import javax.swing.JButton;
    import javax.swing.JFrame;public class MyJFrame extends JFrame { private static final long serialVersionUID = 1L; /**
     * @param args
     */
    public static void main(String[] args) {

    JButton button = new JButton("button");
    button.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e) {
    JFrame newFrame = new JFrame("newFrame");
    newFrame.setSize(200, 100);
    newFrame.setVisible(true);
    }
    });

    MyJFrame frame = new MyJFrame();
    frame.setSize(400, 300);
    frame.add(button);
    frame.setVisible(true);
    }}
      

  4.   

    这个是不是你要求的.import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    import javax.swing.event.*;
    public class MyFrame extends JFrame implements ActionListener{
    JLabel myLabel;
    JButton b;
    JPanel p=new JPanel();
    public MyFrame(){
    myLabel=new JLabel("点击铵钮显示另一个界面");
    b=new JButton("显示");
    p.add(myLabel);
    p.add(b);
    this.setContentPane(p);
    this.setSize(300,300);
    this.setVisible(true);
    b.addActionListener(this);
    }
    public void actionPerformed(ActionEvent ae){
    if(ae.getSource()==b){
    NewFrame nf=new NewFrame();
    nf.setVisible(true);
    }
    }

    public static void main(String[] args){
    new MyFrame();
    }
    }class NewFrame extends JFrame{
    JLabel myLabel;
    JPanel p=new JPanel();
    public NewFrame(){
    myLabel=new JLabel("这是新的界面");
    p.add(myLabel);
    this.setContentPane(p);
    this.setSize(200,200);
    this.setTitle("这是新的界面");
    this.setVisible(true);
    }

    public static void main(String[] args){
    new NewFrame();
    }
    }