求代码:利用Java做一个新的弹出窗口的小程序

1求一段Java的程序代码,这个代码的功能是要求弹出新窗口的,要求完整的一段代码(包括这段代码的最后文件名)...
(我是用eclipse.exe操作的)

2另有疑问:
import java.awt.*;
import javax.swing.*;
import java.awt.Rectangle;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class Frame1 extends JFrame
{
private JButton jButton1=new JButton();

public Frame1 ()
{
try {
jbInit();
}
catch(Exception exception) {
exception.printStackTrace();
}
this.setVisible(true);
}

private void jbInit () throws Exception
{
this.setBounds(300,180,400,300);
getContentPane().setLayout(null);
jButton1.setBounds(new Rectangle(127, 120, 139, 36));
jButton1.setMnemonic('C');
jButton1.setText("点我(C)");
jButton1.addActionListener(new ActionListener()
{
public void actionPerformed (ActionEvent e)
{
jButton1_actionPerformed(e);
}
});
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.getContentPane().add(jButton1);
}

public static void main (String[] args)
{
Frame1 frame1=new Frame1();
}

public void jButton1_actionPerformed (ActionEvent e)
{
this.setVisible(false);
JFrame jf1=new JFrame("子窗口");
jf1.setBounds(100,50,800,600);
jf1.setDefaultCloseOperation(jf1.EXIT_ON_CLOSE);
jf1.setVisible(true);
}
}
这段代码,是一个简单的JAVA程序,点击按钮弹出一个新窗口并且隐藏按钮所在的窗口!

但是,我不知道它具体的文件名是什么,是*.java,我不清楚,所以我在 eclipse.exe中运行,都是错误的,求高手帮忙啊!
package untitled1
是什么意思啊,我把那三个文件都编好了,用eclipse运行windowscenter.java系统说,那开头的package does not match the expected package...
那个package,要先建一个吗..
还有就是,那三个文件编译,怎么编译啊,我只是用记事本用java为后缀保存了,具体编译,要用dos命令吗?
我java是超级不懂啊

第1个回答  推荐于2016-01-27
重点地是窗体弹出类:WindowsCenter.java
文件一父窗文件名Frame3.java

package untitled1;

import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Frame3 extends JFrame {
JButton jButton1 = new JButton();

public Frame3() {
try {
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}

private void jbInit() throws Exception {
getContentPane().setLayout(null);
setSize(400,400);
jButton1.setBounds(new Rectangle(86, 125, 186, 52));
jButton1.setText("点击弹出一个窗口");
jButton1.addActionListener(new Frame3_jButton1_actionAdapter(this));
this.getContentPane().add(jButton1, null);
}

public void jButton1_actionPerformed(ActionEvent e) {
this.dispose();//释放当前窗口
WindowsCenter.Center(new Frame2());//弹出第三个窗口
}
public static void main (String[] args)
{
WindowsCenter.Center(new Frame3());//弹出主窗口
}

}

class Frame3_jButton1_actionAdapter implements ActionListener {
private Frame3 adaptee;
Frame3_jButton1_actionAdapter(Frame3 adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.jButton1_actionPerformed(e);
}
}

//要弹出的子窗口文件名:Frame2.java

package untitled1;

import java.awt.*;
import javax.swing.*;
import java.awt.Rectangle;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class Frame2 extends JFrame
{
private JButton jButton1=new JButton();

public Frame2 ()
{
try {
jbInit();
}
catch(Exception exception) {
exception.printStackTrace();
}
this.setVisible(true);
}

private void jbInit () throws Exception
{
this.setBounds(300,180,400,300);
getContentPane().setLayout(null);
jButton1.setBounds(new Rectangle(127, 120, 139, 36));
jButton1.setMnemonic('C');
jButton1.setText("点我(C)");
jButton1.addActionListener(new ActionListener()
{
public void actionPerformed (ActionEvent e)
{
jButton1_actionPerformed(e);
}
});
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.getContentPane().add(jButton1);
}

public void jButton1_actionPerformed (ActionEvent e)
{
this.setVisible(false);
JFrame jf1=new JFrame("子窗口");
jf1.setBounds(100,50,800,600);
jf1.setDefaultCloseOperation(jf1.EXIT_ON_CLOSE);
jf1.setVisible(true);
}
}

//窗体居中弹出类文件名:WindowsCenter.java类
package untitled1;

import java.awt.Toolkit;
import java.awt.Dimension;
import javax.swing.*;
//窗体居中类
public class WindowsCenter {
public WindowsCenter() {
}
public static void Center(JFrame frame){
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = frame.getSize();
if (frameSize.height > screenSize.height) {
frameSize.height = screenSize.height;
}
if (frameSize.width > screenSize.width) {
frameSize.width = screenSize.width;
}
frame.setLocation((screenSize.width - frameSize.width) / 2,
(screenSize.height - frameSize.height) / 2);
frame.show();
}
}

//将这三个文件分别编译后执行

第二个文件名是Frame1.java,用命令javac Frame1.java可以编译,命令java Frame1.class可以执行本回答被提问者采纳
相似回答