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();
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-24
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();
}
}追问

如果主界面和另外一个界面我是用类描述的而不是用方法也是这样吗。

追答

嗯,也是这样的

本回答被提问者采纳
第2个回答  2011-12-12
你可以给查看余额的界面上添加个按钮,然后给按钮添加事件

当按钮被点击的时候,将查看余额的界面设置为不可见,将主菜单设置为可见..
第3个回答  2011-12-12
在返回的那个按钮绑定一个事件,这个事件主要处理的就是结束你当前窗口的任务,最后销毁当前窗口,将菜单那个界面的visiable(好像是这么拼,太久不记得了,大概就是设置是否可见的函数)设置为true(如果你没有把这个菜单销毁而只是隐藏起来的话),如果是菜单已经销毁了那么就再new一个出来。
第4个回答  2015-08-14
从一个界面A,弹出一个界面B,然后写个线程过完指定时间自动关闭界面B即可。

java图形界面设计如何从一个界面跳到另外界面再返回?
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.se...

java图形界面设计如何从一个界面跳到另外界面再返回?
import java.awt.BorderLayout;\\x0d\\x0aimport java.awt.Color;\\x0d\\x0aimport java.awt.FlowLayout;\\x0d\\x0aimport java.awt.Font;\\x0d\\x0aimport java.awt.event.ActionEvent;\\x0d\\x0aimport java.awt.event.ActionListener;\\x0d\\x0aimport java.awt.event.KeyEvent;\\x0d\\x0ai...

求助大神 java图形界面中如何从A界面跳转到B界面,需要代码
在JFrameA中打开JFrameB(都继承JFrame):new JFrameB().setVisible(true);\/\/用来显示JFrameB this.dispose();\/\/这句用来释放JFrameA占用的资源,这样JFrameA就销毁了。

如何在java程序中,当点击一个按钮后,关闭当前窗口,开启一个新的窗口...
}}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 ...

java+swing图形界面出错后点了repace,界面全没了,但是代码还在,怎么...
当您使用Java Swing创建图形界面时,如果在界面出错后点击了"Replace"按钮,界面的代码将被替换为新的代码。在这种情况下,您可以通过以下步骤来恢复界面代码:打开你的Java开发环境(如Eclipse、IntelliJ IDEA等)。导航到您的Swing界面类的源代码文件(通常是以.java为扩展名)。在源代码文件中找到之前...

怎么用java编程实现点击一个ps设计的图标进入到一个界面
既然用Java实现那你得会java的图形界面,这里默认你已经会了。实现这个功能,你可以在界面上添加一个lable或者图片。就用你ps图标作为源 然后添加点击事件监听,点击该控件,然后重新打开另一个界面

java图形界面程序,当单击按钮时把一个文本框当前内容复制到另一个文本...
import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTextArea;public class Main extends JFrame { private JTextArea text1 = null;private JTextArea text2 = null;private JButton...

java编程采用图形界面实现两个内容的交换,图形界面如下图
this.setResizable(false);this.setVisible(true);} public static void main(String[] str){ new TestTest();} Override public void actionPerformed(ActionEvent e) { if(e.getSource() == button){ String temp = tt1.getText();tt1.setText(tt2.getText());tt2.setText(temp);} } } ...

JAVA图形化代码怎么调用不是图形化代码界面?
如果你想在 Java 中调用图形化代码(如 GUI 界面)而不显示图形界面,可以考虑使用无头模式(Headless Mode)来运行你的代码。无头模式允许你在没有显示图形界面的情况下执行图形化代码。以下是在 Java 中使用无头模式的示例代码:java import java.awt.GraphicsEnvironment;public class HeadlessModeExample ...

JAVA将一个JFrame放入另一个JFrame
1.先下载一个windowbuilder,安装到Eclipse中,就可以很容易做出来图形化的界面设计 源代码如下:第一个Java文件Menu.java package output;import java.awt.BorderLayout;public class Menu extends JFrame { private JPanel contentPane;\/ Launch the application.\/ public static void main(String[] args)...

相似回答