用java做一个窗口

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用java做一个窗口相关的知识,希望对你有一定的参考价值。

设计一个窗口,在窗口内摆放一个按钮和一个标签,按钮上显示“计数器”,标签上初始值为0,当不断地单击按钮时,则标签上值加1。同时窗口具有文件菜单,文件菜单有“计数器”和“退出”菜单项。当选择计数器菜单项时,标签上值加1; 当选择“退出”菜单项时,程序结束。

java做窗口的话,需要用swing技术,之后创建JFrame 等组件,即可完成窗口创建工作。
package inter.frame;import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;public class MenuTest /**
* @param args
*/
JFrame frame; //定义一个窗口架构
JMenuBar mb;//定义窗口的菜单工具栏
JMenu m; //定义菜单
JMenuItem mi1;//定义菜单的内容
JMenuItem mi2; //定义菜单的内容
public MenuTest()
initFrame();
initAction();

public void initFrame()
frame = new JFrame();
mb = new JMenuBar();
m = new JMenu("学生查询");
mi1 = new JMenuItem("确认");
mi2 = new JMenuItem("取消"); m.add(mi1);
m.add(mi2);
mb.add(m);
frame.add(mb, BorderLayout.NORTH);
frame.setSize(300, 300); //设置窗口大小
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置退出时关闭窗口
frame.setVisible(true);//设置窗口可见
public void initAction()
mi1.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent e)
// 具体实现代码根据实际要求填写
System.out.println("click");
JOptionPane.showMessageDialog(null, "你点击了确定按钮");

);
mi2.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent e)
// 具体实现代码根据实际要求填写
JOptionPane.showMessageDialog(null, "你点击了取消按钮");

);
public static void main(String[] args)
new MenuTest();//执行菜单创建
参考技术A import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

public class Counter implements ActionListener
public static void main(String[] args)
new Counter();

JFrame f;
JButton b;
JLabel l;
JMenuBar mb;
JMenu m;
JMenuItem i1,i2;

public Counter()
f= new JFrame("计数器");
f.getContentPane().setLayout(new FlowLayout(FlowLayout.RIGHT));
f.setSize(200,98);
f.setLocationRelativeTo(null);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
b=new JButton("计数器");
l=new JLabel("0");
l.setPreferredSize(new Dimension(100,20));
mb=new JMenuBar();
m=new JMenu("文件菜单");
i1=new JMenuItem("计数器");
m.add(i1);
i2.addActionListener(this);
m.add(i2);
mb.add(m);
f.setJMenuBar(mb);
f.getContentPane().add(l);
f.getContentPane().add(b);
f.setVisible(true);

b.addActionListener(this);
i1.addActionListener(this);
i2=new JMenuItem("退出");

private void plus()
l.setText(String.valueOf(Integer.parseInt(l.getText())+1));

public void actionPerformed(ActionEvent e)
if(e.getActionCommand().equals("退出"))
System.exit(0);
else
plus();

参考技术B 与一楼的回答差不多 参考技术C import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;

public class Count extends JFrame

private static final long serialVersionUID = 1L;

private JPanel panel;
private JLabel lbl;
private JButton btnCount;
private JMenuBar menuBar;
private JMenu menuFile;
private JMenuItem menuItemCount;
private JMenuItem menuItemExit;

private String lblView = "0";

public void init()
setTitle("Count");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
menuBar = new JMenuBar();
menuFile = new JMenu("File");
this.setJMenuBar(menuBar);
menuBar.add(menuFile);
menuItemCount = new JMenuItem("Count");
menuItemExit = new JMenuItem("Exit");
menuFile.add(menuItemCount);
menuFile.add(menuItemExit);

panel = new JPanel();
this.add(panel);
lbl = new JLabel(lblView);
btnCount = new JButton("Count");
panel.add(lbl);
panel.add(btnCount);

this.pack();
this.setVisible(true);

addAction();


public void addAction()
btnCount.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent e)
count();

);
menuItemCount.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent e)
count();

);
menuItemExit.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent e)
System.exit(0);

);


public void count()
int tep = Integer.parseInt(lbl.getText());
lblView = String.valueOf(tep+1);
lbl.setText(lblView);


public static void main(String[] args)
Count count = new Count();
count.init();


//楼上有错的,跑不起来
//楼上要把 i2=new JMenuItem("退出");放到前面,i1=new JMenuItem("计数器");的后面本回答被提问者采纳

JAVA怎么写代码使一个窗口打开另一个窗口

需要做一个客户端程序从一个窗口点击按钮进入到另一个窗口,就是登录界面,注册界面和主界面,现在不知道,怎么从登录界面转到注册界面,注册后返回登陆界面,或从登陆界面登陆后到主界面,求JAVA高手提供代码提示。

1、首先,我们需要在代码中导入相应的包,以便能够使用 JFrame 类。然后,新建一个窗口类继承自 JFrame 类。

2、在窗口类中创建一个初始化方法,我们需要在该方法中初始化窗口类对象,并将其显示出来。

3、对窗口对象进行初始化时,我们先设置好窗口的标题。

4、再设置窗口的大小,参数分别为窗口的长和宽,单位是像素。

5、接着设置窗口左上角的坐标位置,以确定窗口的位置。参数分别为窗口左上角顶点的 x 坐标和 y 坐标。

6、最后,调用 setVisible 方法将窗口显示出来。参数为 true 表示显示,为 false 表示隐藏。

7、窗口类写好后,我们在 main 方法中创建一个窗口类对象,然后调用该对象的初始化方法就可以将窗口显示出来了。

参考技术A 要写两个窗体,第一个窗体:
import javax.swing.SwingUtilities;
import javax.swing.JPanel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.Rectangle;

public class Frame1 extends JFrame implements ActionListener

private static final long serialVersionUID = 1L;

private JPanel jContentPane = null;

private JButton jButton = null;

public void actionPerformed(ActionEvent arg0)
Frame2 f2=new Frame2(this);
f2.setVisible(true);
this.setVisible(false);

private JButton getJButton()
if (jButton == null)
jButton = new JButton();
jButton.setBounds(new Rectangle(92, 62, 105, 35));
jButton.setText("进入子窗体");
jButton.addActionListener(this);

return jButton;

public static void main(String[] args)
// TODO 自动生成方法存根
SwingUtilities.invokeLater(new Runnable()
public void run()
Frame1 thisClass = new Frame1();
thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
thisClass.setVisible(true);

);

public Frame1()
super();
initialize();

private void initialize()
this.setSize(300, 200);
this.setContentPane(getJContentPane());
this.setTitle("主窗体");

private JPanel getJContentPane()
if (jContentPane == null)
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(getJButton(), null);

return jContentPane;



第二个窗体(可以从第一个窗体进入第二个窗体,也可从第二个窗体回到第一个窗体)
import javax.swing.SwingUtilities;
import javax.swing.JPanel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.Rectangle;

public class Frame2 extends JFrame implements ActionListener, WindowListener

private static final long serialVersionUID = 1L;

private JPanel jContentPane = null;

private JButton jButton = null;

private Frame1 f1=null;

public void actionPerformed(ActionEvent arg0)
f1.setVisible(true);
this.setVisible(false);


private JButton getJButton()
if (jButton == null)
jButton = new JButton();
jButton.setBounds(new Rectangle(85, 48, 105, 39));
jButton.setText("回到主窗体");
jButton.addActionListener(this);

return jButton;

public static void main(String[] args)
// TODO 自动生成方法存根
SwingUtilities.invokeLater(new Runnable()
public void run()
Frame2 thisClass = new Frame2();
thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
thisClass.setVisible(true);

);

public Frame2()
super();
initialize();


public Frame2(Frame1 f)
this();
f1=f;

private void initialize()
this.setSize(300, 200);
this.setContentPane(getJContentPane());
this.setTitle("子窗体");
this.addWindowListener(this);

private JPanel getJContentPane()
if (jContentPane == null)
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(getJButton(), null);

return jContentPane;


public void windowActivated(WindowEvent arg0)


public void windowClosed(WindowEvent arg0)


public void windowClosing(WindowEvent arg0)
f1.setVisible(true);


public void windowDeactivated(WindowEvent arg0)


public void windowDeiconified(WindowEvent arg0)


public void windowIconified(WindowEvent arg0)


public void windowOpened(WindowEvent arg0)

本回答被提问者采纳
参考技术B 提供一个思路
//登录窗口
class Login extends JFrame
JButton register;
JButton sure;
register.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent e)
this.setVisible(false);
new RegisterFrame(this);

);
sure.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent e)
this.setVisible(false);
new MainFrame(this);
);


//注册窗口
class RegisterFrame extends JFrame
////省略主要内容
Login login;
RegisterFrame(Login l)
login = l;

JButton goback;
goback.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent e)
this.setVisible(false);
login.setVisible(true);
);



//主窗口
class MainFrame extends JFrame
////省略主要内容
Login login;
MainFrame(Login l)
login = l;

JButton goback;
goback.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent e)
this.setVisible(false);
login.setVisible(true);
);

以上是关于用java做一个窗口的主要内容,如果未能解决你的问题,请参考以下文章

java TCP做聊天程序是应该一个聊天窗口一个线程还是一个Socket一个线程

用MFC怎么做窗体

java swing 我是想把图片作为登录界面的背景,并且需要背景图片能够随窗口大小缩放。。。最好是用标签法

JAVA的弹窗怎么做?

Java JFrame图形界面 ----一个简单的窗口

用java做门户网站可以吗