首页 > 后端开发 > 正文

如何在java程序中,当点击一个按钮后,关闭当前窗口,开启一个新的窗口。

2024-05-19 18:53:26 | 我爱编程网

今天我爱编程网小编整理了如何在java程序中,当点击一个按钮后,关闭当前窗口,开启一个新的窗口。相关信息,希望在这方面能够更好帮助到大家。

本文目录一览:

如何在java程序中,当点击一个按钮后,关闭当前窗口,开启一个新的窗口。

如何在java程序中,当点击一个按钮后,关闭当前窗口,开启一个新的窗口。

首先分析需要的GUI技术

java中一般使用swing 和awt技术来实现图形界面,Swing组件较多,功能比较强大,所以这里使用Swing组件来实现。窗口使用(JFrame),按钮使用(JButton)。

设想一个符合题目需求的场景

两个窗口关联并且跳转,最常见的场景就是登陆了。

登陆窗口,输入用户名和密码,如果成功就跳转到主窗口

核心逻辑,跳转窗口的关键代码

一般可以隐藏本窗口(setVisible(false);),显示新窗口来实现窗口的跳转。

但是隐藏窗口,会在后面浪费系统资源。

如果不再使用该窗口,应该彻底销毁(dispose();),释放系统资源

代码和注释

LoginFrame 类

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

//LoginFrame 登陆窗口  功能 实现用户登陆 ,如果成功就跳转

//LoginFrame 继承于窗口类, 并实现ActionListener接口

public class LoginFrame extends JFrame implements ActionListener {

// 申明需要的组件

JButton jb1, jb2;//按钮

JTextField jtf1;//文本框

JPasswordField jpf1;//密码框

public LoginFrame() {

// 窗口属性的设置

setTitle("登陆窗");// 窗口标题

setSize(300, 180);// 窗口大小

setLocationRelativeTo(null);// 窗口居中

setDefaultCloseOperation(EXIT_ON_CLOSE);// 关闭窗口则退出虚拟机

setLayout(new FlowLayout());// 设置布局流式布局

JPanel jp = new JPanel(new GridLayout(4, 1));// 设置面板为表格布局4行1列

// 第一行

JPanel jp1 = new JPanel();

JLabel jl1 = new JLabel("账号 ");

jtf1 = new JTextField(12);

jp1.add(jl1);

jp1.add(jtf1);

jp.add(jp1);

// 第二行

JPanel jp2 = new JPanel();

JLabel jl2 = new JLabel("密码 ");

jpf1 = new JPasswordField(12);

jp2.add(jl2);

jp2.add(jpf1);

jp.add(jp2);

// 第三行

JPanel jp3 = new JPanel();

jb1 = new JButton("登陆");

jb1.addActionListener(this);// 添加动作响应器

jb2 = new JButton("重置");

jb2.addActionListener(this);// 添加动作响应器

jp3.add(jb1);

jp3.add(jb2);

jp.add(jp3);

// 第四行

JPanel jp4 = new JPanel();

JLabel jl3 = new JLabel("提示: 账号 admin 密码 123");

jl3.setForeground(Color.DARK_GRAY);

jp4.add(jl3);

jp.add(jp4);

add(jp);

}

// 动作响应

public void actionPerformed(ActionEvent e) {我爱编程网

String cmd = e.getActionCommand();// 根据动作命令,来进行分别处理

if (cmd.equals("登陆")) {

String id = jtf1.getText();// 取得用户名

String key = new String(jpf1.getPassword());// 取得密码

if (id.equals("admin") && key.equals("123")) {// 判断是否登录成功

// 如果登录成功

setVisible(false);// 本窗口隐藏,

new MainFrame(id).setVisible(true);// 新窗口显示

dispose();//本窗口销毁,释放内存资源

} else {

//如果登录失败  弹出提示

JOptionPane.showMessageDialog(this, "用户名或者密码错误.", "通知", JOptionPane.ERROR_MESSAGE);

clearText();//清空文本框 密码框的输入

}

} else if (cmd.equals("重置")) {

clearText();

}

}

private void clearText() {//清空文本框, 密码框的输入

jtf1.setText("");

jpf1.setText("");

}

//main方法, 程序的入口

public static void main(String[] args) {

new LoginFrame().setVisible(true);//创建登录窗口,并可见

}

}

MainFrame类

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class MainFrame extends JFrame {

public MainFrame(String name) {

setTitle("主窗口");//标题

setSize(300, 260);//大小

setLocationRelativeTo(null);//居中

setDefaultCloseOperation(EXIT_ON_CLOSE);

JPanel jp = new JPanel();

JLabel jl1 = new JLabel("欢迎");

JLabel jl2 = new JLabel(name);

jl2.setForeground(Color.BLUE);//设置文本颜色

JLabel jl3 = new JLabel("使用系统.");

jp.add(jl1);

jp.add(jl2);

jp.add(jl3);

add(jp, BorderLayout.NORTH);

JTextArea jta = new JTextArea();

jta.setLineWrap(true);

jta.append("消息提示");

jta.append(" 消息!通知~!");

JScrollPane jsp = new JScrollPane(jta, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);

add(jsp);

JPanel jp2 = new JPanel();

JButton jb = new JButton("退出");

jb.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

System.exit(0);//退出

}

});

jp2.add(jb);

add(jp2,BorderLayout.SOUTH);

}

}

运行效果图

如何在java程序中,当点击一个按钮后,关闭当前窗口,开启一个新的窗口。

cmd编译运行java程序后我想关闭cmd但程序还得运行,该怎么做?

通常情况下,在cmd运行java程序后,如果关闭cmd窗口,java程序也会随之关闭。\x0d\x0a如果你编写的是命令行交互的程序,这当然没问题。如果是GUI程序,这时如果关闭cmd窗口(也许你是觉得它影响美观),很糟糕,GUI界面也随之消失了。\x0d\x0a如何才能关闭cmd而不关闭java gui界面呢?答案是:javaw 。在java安装目录下,除了有java.exe供我们运行编译好的class文件外,还有一个javaw.exe文件,这个命令就可以实现我们的目的。\x0d\x0a如果你平时是这样运行java程序的:java Test,这时只需要稍稍更改下:javaw Test即可。等GUI出来以后,关闭cmd窗口即可。\x0d\x0a另外还有一个方法,就是把你所有的class文件打包成jar文件,双击即可运行,也就不需要打开cmd了。

如何在java程序中,当点击一个按钮后,关闭当前窗口,开启一个新的窗口。

java关闭之后,java tm platform se binary还在运行?什么情况?

我爱编程网(https://www.52biancheng.com)小编还为大家带来java关闭之后,java tm platform se binary还在运行?什么情况?的相关内容。

因为你那是算强行关闭。你打开的程序越多,关闭以后感觉电脑还是有点卡等问题。那就是因为你没有异常处理。你可以在添加frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

添加这个以后就没有了。

以上,就是我爱编程网小编给大家带来的如何在java程序中,当点击一个按钮后,关闭当前窗口,开启一个新的窗口。全部内容,希望对大家有所帮助!更多相关文章关注我爱编程网:www.52biancheng.com

免责声明:文章内容来自网络,如有侵权请及时联系删除。
与“如何在java程序中,当点击一个按钮后,关闭当前窗口,开启一个新的窗口。”相关推荐
java在窗口中添加按钮怎么显示在窗口啊
java在窗口中添加按钮怎么显示在窗口啊

java在窗口中添加按钮怎么显示在窗口啊用frame.add(button)添加按钮对象到窗体对象,再用frame.setVisable(true)显示窗口即可或用panel.add(button);frame.add(panel);frame.setVisable(true);javaswing编程中,如何实现点击按钮弹出新的窗口???其实是内部类的运用,我附上

2024-06-09 12:39:21
JAVA如何给程序设置一个窗口
JAVA如何给程序设置一个窗口

JAVA如何给程序设置一个窗口首先,绘制一个默认的窗体,创建好工程,包,类,命名类为Window.很简单,在类中添加一个私有属性JFrame,这么写:privateJFramef=newJFrame("欢迎来到本自助银行");Window的构造方法中,只写 f.setVisible(true);以及窗体的初始位置和初始大小:f.setLocation(300,200);f.setSiz

2024-05-09 07:58:28
php文件中添加一个按钮 点击关闭当前页面调用什么函数
php文件中添加一个按钮 点击关闭当前页面调用什么函数

php点击按钮调用一个函数给你一个最简单的示例<?phpfunctionquery(){........代码......}if($_POST["do"]=="yes"){query();}?><inputtype="button"value="按钮"onclick="javascript:cmdclick()"/><scr

2024-08-04 11:00:12
JAVA 编写一个带有窗口的应用程序(怎样在JAVA中运行程序)
JAVA 编写一个带有窗口的应用程序(怎样在JAVA中运行程序)

JAVA编写一个带有窗口的应用程序这样:importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.awt.Graphics;publicclassMainClassextendsJFrame{publicJComboBoxbox;intflag=0;jpNew

2024-06-08 18:26:14
JAVA 如何通过按钮打开另一个程序
JAVA 如何通过按钮打开另一个程序

JAVA如何通过按钮打开另一个程序packagekuohao;importjava.awt.Button;importjava.awt.Color;importjava.awt.FileDialog;importjava.awt.Frame;importjava.awt.TextArea;importjava.awt.event.ActionEvent;impor

2024-05-31 08:27:13
如何在python IDLE Shell窗口中编写程序计算圆的周长?
如何在python IDLE Shell窗口中编写程序计算圆的周长?

如何在pythonIDLEShell窗口中编写程序计算圆的周长?可以按照以下步骤在PythonIDLEShell窗口中编写计算圆周长的程序:打开PythonIDLEShell窗口。在窗口中输入以下代码:pythonCopycoderadius=float(input("请输入圆的半径:"))circumference=2*3.14159*radiuspr

2023-12-13 02:25:56
我在做一个JAVA软件,希望在点击一个按钮后执行一段程序,在执行过程中出现一个进度条,应该怎么添加
我在做一个JAVA软件,希望在点击一个按钮后执行一段程序,在执行过程中出现一个进度条,应该怎么添加

java中swing界面中主程序运行时进度条不显示,程序结束后才显示;注释掉主程序后,再运行,进度条正常显示你的action事件可以放在一个新线程中运行,不要阻挡Swing画图。Swing对事件的响应都是放在一个叫事件派发的线程中去做的,如果你的事件响应监听器本身在被事件派发线程调用时你做的事件太花时间了(比如我们来个无限循环啥的)我们就应该把这个actionPerformed方法中的

2024-06-08 12:20:00
php。在while循环中调用一个函数。是当调用的函数执行完后再进入下一次循环?(php中点击一个按钮,执行一个内置函数)
php。在while循环中调用一个函数。是当调用的函数执行完后再进入下一次循环?(php中点击一个按钮,执行一个内置函数)

php。在while循环中调用一个函数。是当调用的函数执行完后再进入下一次循环?你的第一个问题:只有在本次的yihanshu()彻底执行完毕后,才进行下一次while循环。你的第二个问题:可以在yihanshu()里面插入sleep(1000000);例如yihanshu(){sleep(10000);//间隔10000秒之后再继续执行dosomething();

2024-08-25 12:50:50