中易网

java图形界面设计如何从一个界面跳到另外界面再返回?

答案:7  悬赏:0  
解决时间 2021-01-13 03:24
java图形界面设计如何从一个界面跳到另外界面再返回?
最佳答案
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Calendar;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextArea;

public class Test2{
public Test2() {}

JFrame frame; //主界面框架

//主界面函数
public void mainFace() {
frame=new JFrame("主界面");
frame.setLayout(new BorderLayout());

JLabel label=new JLabel("这是主界面");
frame.add(label,BorderLayout.CENTER);

JButton button=new JButton("进入另一个界面");
frame.add(button,BorderLayout.SOUTH);
button.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
otherFace(); //进入另一个界面
frame.dispose(); //主界面关闭
}

});

frame.setSize(400,300);
frame.setLocation(100,50);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

//另一个图形界面
public void otherFace() {
final JFrame oframe=new JFrame("另一个界面");
oframe.setLayout(new BorderLayout());

JTextArea displayArea=new JTextArea();
oframe.add(displayArea,BorderLayout.CENTER);
displayArea.setFont(new Font("宋体",Font.BOLD,30));
displayArea.setForeground(Color.red);

displayArea.append("\n\n\n\n 这是另一个图形界面");

JButton button1=new JButton("返回主界面");
oframe.add(button1,BorderLayout.SOUTH);

button1.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
frame.setVisible(true); //主界面显示
oframe.dispose(); //另一个界面关闭
}

});

oframe.setSize(400,300);
oframe.setLocation(150,100);
oframe.setVisible(true);
}

//密码输入函数
public void passwordFrame() {
final JFrame keyFrame=new JFrame("Password Input");
keyFrame.setLayout(new FlowLayout());

final JPasswordField keyField=new JPasswordField();
keyField.setColumns(30);
keyField.setFont(new Font("宋体",Font.BOLD,20));
keyField.setEchoChar('@');
keyFrame.add(keyField);

Calendar calendar=Calendar.getInstance();

int mon=calendar.get(Calendar.MONTH)+1;
int day=calendar.get(Calendar.DAY_OF_MONTH);
int h=calendar.get(Calendar.HOUR_OF_DAY);
int m=calendar.get(Calendar.MINUTE);

final String nowKey=mon+"."+day+"."+h+"."+m; //密码为现在时间的 月.日.时.分

keyField.addKeyListener(new KeyListener() { //给密码框添加键盘监听器

public void keyPressed(KeyEvent e) {
if(e.getKeyCode()==KeyEvent.VK_ENTER) {
char[] key=keyField.getPassword();
String keyStr = String.valueOf(key);

if(keyStr.equals(nowKey)) {
mainFace(); //进入主界面
keyFrame.dispose();
}
else {
JOptionPane.showMessageDialog(null, "输入的密码不正确!");
}
}
}

@Override
public void keyReleased(KeyEvent e) {}

public void keyTyped(KeyEvent e) {}

});

JButton sureButton=new JButton("确认");
keyFrame.add(sureButton);
sureButton.addActionListener(new ActionListener() { //给'确定'按钮添加动作监听器

public void actionPerformed(ActionEvent e) {
char[] key=keyField.getPassword();
String keyStr = String.valueOf(key);

if(keyStr.equals(nowKey)) {
mainFace(); //进入主界面
keyFrame.dispose();
}
else {
JOptionPane.showMessageDialog(null, "输入的密码不正确!");
}
}

});

JButton cancelButton=new JButton("取消");
keyFrame.add(cancelButton);
cancelButton.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {
System.exit(0);
}

});

keyFrame.setSize(400,120);
keyFrame.setLocation(300,300);
keyFrame.setVisible(true);
keyFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

//程序主函数
public static void main(String args[]) {
Test2 t2=new Test2();
t2.passwordFrame();
}
}
全部回答
:监听器方法中close当前窗口之前创建另一个界面的对象,应该也要传响应的参数
加个 button撒,连接主界面追问我知道,怎么个连发啊
在返回的那个按钮绑定一个事件,这个事件主要处理的就是结束你当前窗口的任务,最后销毁当前窗口,将菜单那个界面的visiable(好像是这么拼,太久不记得了,大概就是设置是否可见的函数)设置为true(如果你没有把这个菜单销毁而只是隐藏起来的话),如果是菜单已经销毁了那么就再new一个出来。
你可以给查看余额的界面上添加个按钮,然后给按钮添加事件
当按钮被点击的时候,将查看余额的界面设置为不可见,将主菜单设置为可见..
从一个界面A,弹出一个界面B,然后写个线程过完指定时间自动关闭界面B即可。
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Calendar;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextArea;
public class Test2{
public Test2() {}

JFrame frame; //主界面框架

//主界面函数
public void mainFace() {
frame=new JFrame("主界面");
frame.setLayout(new BorderLayout());
JLabel label=new JLabel("这是主界面");
frame.add(label,BorderLayout.CENTER);
JButton button=new JButton("进入另一个界面");
frame.add(button,BorderLayout.SOUTH);
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
otherFace(); //进入另一个界面
frame.dispose(); //主界面关闭
}
});
frame.setSize(400,300);
frame.setLocation(100,50);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

//另一个图形界面
public void otherFace() {
final JFrame oframe=new JFrame("另一个界面");
oframe.setLayout(new BorderLayout());
JTextArea displayArea=new JTextArea();
oframe.add(displayArea,BorderLayout.CENTER);
displayArea.setFont(new Font("宋体",Font.BOLD,30));
displayArea.setForeground(Color.red);
displayArea.append("\n\n\n\n 这是另一个图形界面");
JButton button1=new JButton("返回主界面");
oframe.add(button1,BorderLayout.SOUTH);
button1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
frame.setVisible(true); //主界面显示
oframe.dispose(); //另一个界面关闭
}

});
oframe.setSize(400,300);
oframe.setLocation(150,100);
oframe.setVisible(true);
}

//密码输入函数
public void passwordFrame() {
final JFrame keyFrame=new JFrame("Password Input");
keyFrame.setLayout(new FlowLayout());
final JPasswordField keyField=new JPasswordField();
keyField.setColumns(30);
keyField.setFont(new Font("宋体",Font.BOLD,20));
keyField.setEchoChar('@');
keyFrame.add(keyField);

Calendar calendar=Calendar.getInstance();
int mon=calendar.get(Calendar.MONTH)+1;
int day=calendar.get(Calendar.DAY_OF_MONTH);
int h=calendar.get(Calendar.HOUR_OF_DAY);
int m=calendar.get(Calendar.MINUTE);
final String nowKey=mon+"."+day+"."+h+"."+m; //密码为现在时间的 月.日.时.分
keyField.addKeyListener(new KeyListener() { //给密码框添加键盘监听器
public void keyPressed(KeyEvent e) {
if(e.getKeyCode()==KeyEvent.VK_ENTER) {
char[] key=keyField.getPassword();
String keyStr = String.valueOf(key);

if(keyStr.equals(nowKey)) {
mainFace(); //进入主界面
keyFrame.dispose();
}
else {
JOptionPane.showMessageDialog(null, "输入的密码不正确!");
}
}
}
@Override
public void keyReleased(KeyEvent e) {}
public void keyTyped(KeyEvent e) {}

});
JButton sureButton=new JButton("确认");
keyFrame.add(sureButton);
sureButton.addActionListener(new ActionListener() { //给'确定'按钮添加动作监听器
public void actionPerformed(ActionEvent e) {
char[] key=keyField.getPassword();
String keyStr = String.valueOf(key);
if(keyStr.equals(nowKey)) {
mainFace(); //进入主界面
keyFrame.dispose();
}
else {
JOptionPane.showMessageDialog(null, "输入的密码不正确!");
}
}

});
JButton cancelButton=new JButton("取消");
keyFrame.add(cancelButton);
cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}

});
keyFrame.setSize(400,120);
keyFrame.setLocation(300,300);
keyFrame.setVisible(true);
keyFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

//程序主函数
public static void main(String args[]) {
Test2 t2=new Test2();
t2.passwordFrame();
}
}追问如果主界面和另外一个界面我是用类描述的而不是用方法也是这样吗。追答嗯,也是这样的
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
“凄惨”是什么意思?
有帮会可结婚的网游像傲剑ol一样的
物业管理费逾期交纳是否可以收取滞纳金?
朋友在九天艾公司上班,送了我一些艾草,我该
康泰旅行社地址在什么地方,想过去办事
这里吃土求约稿
魏县一完小分校可以寄宿吗
闪迪固态硬盘怎么样
描写暗恋的句子
都有哪些好用的借钱理由?
小柏·艾莉美甲地址在哪,我要去那里办事
四十岁还有在开韧带的吗?谈谈亲身体会!
从私企到国企 可以办调动吗
贷款买车,贷款手续已经办理好了,没交首付款
沁园春·中秋 不用太文艺 迅速!!! 急用!
推荐资讯
剑网3冬至饺子怎么得 剑网三饺子一盒多少个
b2c中,企业角色与个人角色的区别是什么
一辆货车每小时行驶48千米,可以写作______,
辽宁朝阳市去槐树洞坐什么车?越具体越好!
如何评价月野里沙
《画鸡》这部首诗的诗意是什么
放天量的股票是什么意思?
何市邮政所地址在哪,我要去那里办事
什么材质出汗不太显?
淮阳到驻马店多少公里
速驰汽车维修地址好找么,我有些事要过去
东莞地铁r2线全程需要多长时间
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?