首页 > 后端开发 > 正文

如何在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还在运行?什么情况?

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

添加这个以后就没有了。

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

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

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

2024-05-09 07:58:28
如何在python IDLE Shell窗口中编写程序计算圆的周长?
如何在python IDLE Shell窗口中编写程序计算圆的周长?

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

2023-12-13 02:25:56
java中如何实现自动计时功能,就是点击一个start按钮就开始计时,以秒为单位
java中如何实现自动计时功能,就是点击一个start按钮就开始计时,以秒为单位

java中如何实现自动计时功能,就是点击一个start按钮就开始计时,以秒为单位简单代码如下:import java.awt.Button;import java.awt.FlowLayout;import java.awt.Label;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;impo

2024-03-25 21:26:30
JAVA如何关闭或者打开一个指定的windows进程
JAVA如何关闭或者打开一个指定的windows进程

JAVA如何关闭或者打开一个指定的windows进程Processjava.lang.Runtime.exec(Stringcommand);在单独的进程中执行指定的字符串命令java.lang.ProcessProcessBuilder.start()和Runtime.exec方法创建一个本机进程,并返回Process子类的一个实例,该实例可用来控制进程并获取相关信息。Pr

2024-04-29 19:26:28
如何做一个Java循环超时的程序,当程序运行30秒以上,循环跳出
如何做一个Java循环超时的程序,当程序运行30秒以上,循环跳出

java应用调用数据库超时,数据库自己sql很正常Java应用调用数据库超时是指在Java应用程序尝试从数据库中获取数据时,由于某种原因,Java应用程序无法获取数据,超过了约定的时间,从而导致程序出现超时问题。超时的原因可以是Java应用程序的查询语句所花费的时间过长,也可以是网络问题引起的网络延迟。要解决数据库超时问题,可以采取一些措施:1、优化SQL语句,将查询语句优化,减

2024-03-21 11:44:36
java  例如在界面上添加一个button,点击button时如何设置断点进入程序单步调式
java 例如在界面上添加一个button,点击button时如何设置断点进入程序单步调式

java例如在界面上添加一个button,点击button时如何设置断点进入程序单步调式使用Eclipse等IDE编程工具,能方便的进入调试模式。以Eclipse为例:在button的事件函数里面设置断点,用调试模式(即debugas)启动程序即可。新增:把代码贴出来吧。新增:e.getActionCommand().equals("Exit")是用来确认你是否点击的Ex

2024-05-12 13:07:51
java程序如何让程序重新再跑一遍,就是我写的这个游戏如何实现重新开始
java程序如何让程序重新再跑一遍,就是我写的这个游戏如何实现重新开始

java程序如何让程序重新再跑一遍,就是我写的这个游戏如何实现重新开始使用方法调用,配合循环写一段伪代码,可能会帮你理清思路:do{游戏开始运行;.....//循环中可以用方法调用来运行游戏//游戏失败,给用户提示再玩一次?接受用户的选择//如果用户选择"是",再次循环,游戏重新开始//如果用户选择”否",退出循环,游戏结束}while(真

2024-04-07 15:42:06
java如何实现:一个一直在运行的监听程序,每当监听到数据,就把数据发给jsp页面
java如何实现:一个一直在运行的监听程序,每当监听到数据,就把数据发给jsp页面

java如何实现:一个一直在运行的监听程序,每当监听到数据,就把数据发给jsp页面方法1:可以利用ServletContext类的对象application解决,这个属于整个web应用都公用的内部对象。例如在监听器中publicclassGetConnListenerimplementsServletContextListener{//例如这个是要传的数据Stringdata="

2024-03-26 01:02:20