2个JPanel放入一个JFrame,注册界面能正常显示,点击“返回” 后登录界面无法显示,求解啊
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.regex.Pattern;import javax.swing.*;public class LoginFrame extends JFrame{
public static JPanel jplog=new JPanel();
public static JPanel jpreg=new JPanel();
//文本框:用户名 密码 邮箱
private JTextField txflogname=new JTextField();
private JTextField txfregname=new JTextField();
private JTextField txfregemail=new JTextField();
private JPasswordField txflogpassword=new JPasswordField();
private JPasswordField txfregpassword=new JPasswordField();
private JPasswordField txfrepassword=new JPasswordField();
//按钮:登录 注册 重置 注册跳转 返回跳转
JButton btnlog,btnreg,btnreset,btnregister,btngoback;
public LoginFrame(){
// 初始化登录和注册组件
setRegisterPanel();
setLoginPanel();
//返回跳转按钮
btngoback.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
jplog.setVisible(true);
jpreg.setVisible(false);
}
});
//重置按钮
btnreset.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
txfregname.setText(null);
txfregpassword.setText(null);
txfrepassword.setText(null);
txfregemail.setText(null);
}
});
}
/*
* 登录、注册窗口
*/
public void setLoginFrame(){
setTitle("北大青鸟音乐共享平台");
// setLayout(null);
ImageIcon img=new ImageIcon("bg.jpg");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel background=new JLabel(img);
background.setBounds(0, 0, img.getIconWidth(), img.getIconWidth()/2);
//设置窗口大小
Toolkit tk = this.getToolkit();
Dimension dim = tk.getScreenSize();
setBounds((dim.width-img.getIconWidth())/2, (dim.height-img.getIconHeight())/2, img.getIconWidth(), img.getIconHeight());
getContentPane().add(background,-1);
getContentPane().add(jplog,0); //添加注册JPanel
getContentPane().add(jpreg,0); //添加登录JPanel
jplog.setVisible(false); //显示登录界面
jpreg.setVisible(true); //隐藏注册界面
setResizable(false); //窗口大小不可改变
setVisible(true); //设置窗口为可见
}
/*
* 登录JPanel设置
*/
public void setLoginPanel(){
jplog.setLayout(null);
JLabel userlogname=new JLabel("用户名:");
JLabel userlogpassword=new JLabel("密 码:");
btnlog=new JButton("登录");
btnregister=new JButton("注册");
//设置组件位置
userlogname.setBounds(600, 150, 55, 20);
txflogname.setBounds(655, 150, 100, 20);
userlogpassword.setBounds(600, 185, 55, 20);
txflogpassword.setBounds(655, 185, 100, 20);
btnlog.setBounds(615, 220, 60, 20);
btnregister.setBounds(685, 220, 60, 20);
//将组件添加入登录JPanel
jplog.add(userlogname);
jplog.add(txflogname);
jplog.add(userlogpassword);
jplog.add(txflogpassword);
jplog.add(btnlog);
jplog.add(btnregister);
jplog.setOpaque(false);
//jplog.setVisible(false);
}
/*
* 注册JPanel设置
*/
public void setRegisterPanel(){
jpreg.setLayout(null);
JLabel userregname=new JLabel("用 户 名:");
JLabel userregpassword=new JLabel("密 码:");
JLabel userregpassword2=new JLabel("二次密码:");
JLabel userregemail=new JLabel("邮 箱:");
btnreg=new JButton("注册");
btnreset=new JButton("重置");
btngoback=new JButton("返回");
//组件位置设置
userregname.setBounds(600, 115, 70, 20);
txfregname.setBounds(670, 115, 150, 20);
userregpassword.setBounds(600, 150, 70, 20);
txfregpassword.setBounds(670, 150, 150, 20);
userregpassword2.setBounds(600, 185, 70, 20);
txfrepassword.setBounds(670, 185, 150, 20);
userregemail.setBounds(600, 220, 70, 20);
txfregemail.setBounds(670, 220, 150, 20);
btnreg.setBounds(610, 255, 60, 20);
btnreset.setBounds(680, 255, 60, 20);
btngoback.setBounds(750, 255, 60, 20);
//把组件添加到注册JPanel
jpreg.add(userregname);
jpreg.add(txfregname);
jpreg.add(userregpassword);
jpreg.add(userregpassword2);
jpreg.add(txfregpassword);
jpreg.add(txfrepassword);
jpreg.add(userregemail);
jpreg.add(txfregemail);
jpreg.add(btnreg);
jpreg.add(btnreset);
jpreg.add(btngoback);
jpreg.setOpaque(false);
//jpreg.setVisible(false);
}
public static void main(String [] args){
LoginFrame lf=new LoginFrame();
lf.setLoginFrame();
}}
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.regex.Pattern;import javax.swing.*;public class LoginFrame extends JFrame{
public static JPanel jplog=new JPanel();
public static JPanel jpreg=new JPanel();
//文本框:用户名 密码 邮箱
private JTextField txflogname=new JTextField();
private JTextField txfregname=new JTextField();
private JTextField txfregemail=new JTextField();
private JPasswordField txflogpassword=new JPasswordField();
private JPasswordField txfregpassword=new JPasswordField();
private JPasswordField txfrepassword=new JPasswordField();
//按钮:登录 注册 重置 注册跳转 返回跳转
JButton btnlog,btnreg,btnreset,btnregister,btngoback;
public LoginFrame(){
// 初始化登录和注册组件
setRegisterPanel();
setLoginPanel();
//返回跳转按钮
btngoback.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
jplog.setVisible(true);
jpreg.setVisible(false);
}
});
//重置按钮
btnreset.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
txfregname.setText(null);
txfregpassword.setText(null);
txfrepassword.setText(null);
txfregemail.setText(null);
}
});
}
/*
* 登录、注册窗口
*/
public void setLoginFrame(){
setTitle("北大青鸟音乐共享平台");
// setLayout(null);
ImageIcon img=new ImageIcon("bg.jpg");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel background=new JLabel(img);
background.setBounds(0, 0, img.getIconWidth(), img.getIconWidth()/2);
//设置窗口大小
Toolkit tk = this.getToolkit();
Dimension dim = tk.getScreenSize();
setBounds((dim.width-img.getIconWidth())/2, (dim.height-img.getIconHeight())/2, img.getIconWidth(), img.getIconHeight());
getContentPane().add(background,-1);
getContentPane().add(jplog,0); //添加注册JPanel
getContentPane().add(jpreg,0); //添加登录JPanel
jplog.setVisible(false); //显示登录界面
jpreg.setVisible(true); //隐藏注册界面
setResizable(false); //窗口大小不可改变
setVisible(true); //设置窗口为可见
}
/*
* 登录JPanel设置
*/
public void setLoginPanel(){
jplog.setLayout(null);
JLabel userlogname=new JLabel("用户名:");
JLabel userlogpassword=new JLabel("密 码:");
btnlog=new JButton("登录");
btnregister=new JButton("注册");
//设置组件位置
userlogname.setBounds(600, 150, 55, 20);
txflogname.setBounds(655, 150, 100, 20);
userlogpassword.setBounds(600, 185, 55, 20);
txflogpassword.setBounds(655, 185, 100, 20);
btnlog.setBounds(615, 220, 60, 20);
btnregister.setBounds(685, 220, 60, 20);
//将组件添加入登录JPanel
jplog.add(userlogname);
jplog.add(txflogname);
jplog.add(userlogpassword);
jplog.add(txflogpassword);
jplog.add(btnlog);
jplog.add(btnregister);
jplog.setOpaque(false);
//jplog.setVisible(false);
}
/*
* 注册JPanel设置
*/
public void setRegisterPanel(){
jpreg.setLayout(null);
JLabel userregname=new JLabel("用 户 名:");
JLabel userregpassword=new JLabel("密 码:");
JLabel userregpassword2=new JLabel("二次密码:");
JLabel userregemail=new JLabel("邮 箱:");
btnreg=new JButton("注册");
btnreset=new JButton("重置");
btngoback=new JButton("返回");
//组件位置设置
userregname.setBounds(600, 115, 70, 20);
txfregname.setBounds(670, 115, 150, 20);
userregpassword.setBounds(600, 150, 70, 20);
txfregpassword.setBounds(670, 150, 150, 20);
userregpassword2.setBounds(600, 185, 70, 20);
txfrepassword.setBounds(670, 185, 150, 20);
userregemail.setBounds(600, 220, 70, 20);
txfregemail.setBounds(670, 220, 150, 20);
btnreg.setBounds(610, 255, 60, 20);
btnreset.setBounds(680, 255, 60, 20);
btngoback.setBounds(750, 255, 60, 20);
//把组件添加到注册JPanel
jpreg.add(userregname);
jpreg.add(txfregname);
jpreg.add(userregpassword);
jpreg.add(userregpassword2);
jpreg.add(txfregpassword);
jpreg.add(txfrepassword);
jpreg.add(userregemail);
jpreg.add(txfregemail);
jpreg.add(btnreg);
jpreg.add(btnreset);
jpreg.add(btngoback);
jpreg.setOpaque(false);
//jpreg.setVisible(false);
}
public static void main(String [] args){
LoginFrame lf=new LoginFrame();
lf.setLoginFrame();
}}
解决方案 »
- LinkedList
- 执行和暂停
- AJAX动态生成树---高手请进
- 我想用java编一程序,读取jpg文件并显示。望得到较好的方法!
- 难,难,难,hsql update 后退出程序没有改变
- 求:Java API文档中文版CHM
- 求救啊~~~~~~~~~~~~~~~~求救
- 求救阿,高手帮忙一下吧
- 求 Class LineNumberReader 获得整个文件行数得代码
- 用Java可以解决这个问题吗?急!!!
- Class类,使用Class实例一个对象
- 100分求文中异常的解决方案-An unexpected error has been detected by Java Runtime Environment:
btngoback.addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent e) {
jplog.setVisible(true);
jpreg.setVisible(false);
}
});上述code中,当点击返回按钮时,调用了方法“jpreg.setVisible(false);”,意思是将注册界面隐藏,如果不想隐藏界面,那换成你需要的操作即可
我的目的是隐藏 现在的问题是jplog的显示问题 ,没显示啊
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;public class LoginFrame extends JFrame {
public static JPanel jplog = new JPanel();
public static JPanel jpreg = new JPanel();
// 文本框:用户名 密码 邮箱
private JTextField txflogname = new JTextField();
private JTextField txfregname = new JTextField();
private JTextField txfregemail = new JTextField();
private JPasswordField txflogpassword = new JPasswordField();
private JPasswordField txfregpassword = new JPasswordField();
private JPasswordField txfrepassword = new JPasswordField();
// 按钮:登录 注册 重置 注册跳转 返回跳转
JButton btnlog, btnreg, btnreset, btnregister, btngoback; public LoginFrame() {
// 初始化登录和注册组件
setRegisterPanel();
setLoginPanel();
// 返回跳转按钮
btngoback.addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent e) {
jplog.setVisible(true);
jpreg.setVisible(false);
}
});
// 重置按钮
btnreset.addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent e) {
txfregname.setText(null);
txfregpassword.setText(null);
txfrepassword.setText(null);
txfregemail.setText(null);
}
});
btnregister.addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent e) {
jplog.setVisible(false);
jpreg.setVisible(true);
}
});
} /*
* 登录、注册窗口
*/
public void setLoginFrame() {
setTitle("北大青鸟音乐共享平台");
// setLayout(null);
ImageIcon img = new ImageIcon("bg.jpg");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel background = new JLabel(img);
background.setBounds(0, 0, img.getIconWidth(), img.getIconWidth() / 2);
// 设置窗口大小
Toolkit tk = this.getToolkit();
Dimension dim = tk.getScreenSize();
setBounds((dim.width - img.getIconWidth()) / 2,
(dim.height - img.getIconHeight()) / 2, img.getIconWidth(),
img.getIconHeight());
getContentPane().setLayout(new BorderLayout());
getContentPane().add(background, BorderLayout.NORTH);
JPanel p = new JPanel();
p.setLayout(new CardLayout());
p.add(jplog, "login");
p.add(jpreg, "regist");
getContentPane().add(p, BorderLayout.CENTER); // 添加注册JPanel
jplog.setVisible(false); // 显示登录界面
jpreg.setVisible(true); // 隐藏注册界面
setVisible(true); // 设置窗口为可见
pack();
// setResizable(false); // 窗口大小不可改变
} /*
* 登录JPanel设置
*/
public void setLoginPanel() {
jplog.setLayout(null);
JLabel userlogname = new JLabel("用户名:");
JLabel userlogpassword = new JLabel("密 码:");
btnlog = new JButton("登录");
btnregister = new JButton("注册"); // 设置组件位置
userlogname.setBounds(600, 150, 55, 20);
txflogname.setBounds(655, 150, 100, 20);
userlogpassword.setBounds(600, 185, 55, 20);
txflogpassword.setBounds(655, 185, 100, 20);
btnlog.setBounds(615, 220, 60, 20);
btnregister.setBounds(685, 220, 60, 20);
// 将组件添加入登录JPanel
jplog.add(userlogname);
jplog.add(txflogname);
jplog.add(userlogpassword);
jplog.add(txflogpassword);
jplog.add(btnlog);
jplog.add(btnregister);
jplog.setOpaque(false);
// jplog.setVisible(false);
} /*
* 注册JPanel设置
*/
public void setRegisterPanel() {
jpreg.setLayout(null);
JLabel userregname = new JLabel("用 户 名:");
JLabel userregpassword = new JLabel("密 码:");
JLabel userregpassword2 = new JLabel("二次密码:");
JLabel userregemail = new JLabel("邮 箱:");
btnreg = new JButton("注册");
btnreset = new JButton("重置");
btngoback = new JButton("返回");
// 组件位置设置
userregname.setBounds(600, 115, 70, 20);
txfregname.setBounds(670, 115, 150, 20);
userregpassword.setBounds(600, 150, 70, 20);
txfregpassword.setBounds(670, 150, 150, 20);
userregpassword2.setBounds(600, 185, 70, 20);
txfrepassword.setBounds(670, 185, 150, 20);
userregemail.setBounds(600, 220, 70, 20);
txfregemail.setBounds(670, 220, 150, 20);
btnreg.setBounds(610, 255, 60, 20);
btnreset.setBounds(680, 255, 60, 20);
btngoback.setBounds(750, 255, 60, 20);
// 把组件添加到注册JPanel
jpreg.add(userregname);
jpreg.add(txfregname);
jpreg.add(userregpassword);
jpreg.add(userregpassword2);
jpreg.add(txfregpassword);
jpreg.add(txfrepassword);
jpreg.add(userregemail);
jpreg.add(txfregemail);
jpreg.add(btnreg);
jpreg.add(btnreset);
jpreg.add(btngoback);
jpreg.setOpaque(false);
// jpreg.setVisible(false);
} public static void main(String[] args) {
LoginFrame lf = new LoginFrame();
lf.setLoginFrame();
}}