关于内部窗体的问题 我创建了多个内部窗体,但是发现当我关闭名为a的内部窗体,然后在想打开名为a的内部窗体就打不开了,就是说一个内部窗体只能显示一次。当关闭后就在无法显示,只能重新启动程序。这为什么?应该怎么做?谢谢各位大侠!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 package jinxiaocun;/** * 注册 */import javax.swing.JInternalFrame;import javax.swing.JButton;import javax.swing.JLabel;import javax.swing.JTextField;import javax.swing.JPasswordField;import javax.swing.JComboBox;import javax.swing.JPanel;import javax.swing.event.InternalFrameEvent;import javax.swing.event.InternalFrameListener;import javax.swing.JOptionPane;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.GridLayout;public class LoginInternalFrameClass extends JInternalFrame{//注册窗体 public LoginInternalFrameClass() { super("注册",false,true,false,true); setSize(350,500); setLayout(new GridLayout(5,1)); panelName=new JPanel(); textName=new JTextField(15); panelName.add(new JLabel("账号")); panelName.add(textName); panelPassword=new JPanel(); textPassword=new JPasswordField(15); panelPassword.add(new JLabel("密码")); panelPassword.add(textPassword); panelPasswordOK=new JPanel(); textPasswordOK=new JPasswordField(15); panelPasswordOK.add(new JLabel("确认密码")); panelPasswordOK.add(textPasswordOK); panelType=new JPanel(); textType=new JComboBox(); textType.setEditable(true); textType.addItem(""); textType.addItem("普通用户"); textType.addItem("VIP"); textType.addItem("管理员"); panelType.add(new JLabel("身份")); panelType.add(textType); panelButton=new JPanel(); buttonOK=new JButton("确定"); buttonNewly=new JButton("重置"); buttonExit=new JButton("退出"); buttonOK.addActionListener(actionListener); buttonNewly.addActionListener(actionListener); buttonExit.addActionListener(actionListener); panelButton.add(buttonOK); panelButton.add(buttonNewly); panelButton.add(buttonExit); addInternalFrameListener(internalListener); add(panelName); add(panelPassword); add(panelPasswordOK); add(panelType); add(panelButton); } private class InternalFrameClassListener implements InternalFrameListener{ public void internalFrameOpened(InternalFrameEvent e) { } public void internalFrameClosing(InternalFrameEvent e) { int i=JOptionPane.showConfirmDialog(null,"是否退出"); if(i==0){ setVisible(true); } } public void internalFrameClosed(InternalFrameEvent e) { } public void internalFrameIconified(InternalFrameEvent e) { } public void internalFrameDeiconified(InternalFrameEvent e) { } public void internalFrameActivated(InternalFrameEvent e) { } public void internalFrameDeactivated(InternalFrameEvent e) { } } private class LoginActionListener implements ActionListener{ public void actionPerformed(ActionEvent event){ String name=String.valueOf(textName.getText()); String password=String.valueOf(textPassword.getPassword()); String passwordOK=String.valueOf(textPasswordOK.getPassword()); String type=String.valueOf(textType.getSelectedItem()); if(event.getSource()==buttonOK){ if(isLogin(name,password,passwordOK,type)){ if(sql.isLoginSqlServer(name,password,passwordOK,type)){ JOptionPane.showMessageDialog(null,"注册成功"); textName.setText(""); textPassword.setText(""); textPasswordOK.setText(""); textType.setSelectedItem(""); } else{ JOptionPane.showMessageDialog(null,"系统繁忙,请与管理员联系!"); } } } else if(event.getSource()==buttonNewly){ textName.setText(""); textPassword.setText(""); textPasswordOK.setText(""); textType.setSelectedItem(""); } else if(event.getSource()==buttonExit){ int i=JOptionPane.showConfirmDialog(null,"是否退出"); if(i==0){ setVisible(false); } } } } public boolean isLogin(String name,String password,String passwordOK,String type){ if(name.equals("")){ JOptionPane.showMessageDialog(null,"用户名不能为空"); return false; } else if(name.length()<6){ JOptionPane.showMessageDialog(null,"用户名长度不对"); return false; } else if(name.length()>20){ JOptionPane.showMessageDialog(null,"用户名长度超过范围"); return false; } else if(password.equals("")){ JOptionPane.showMessageDialog(null,"密码不能为空"); return false; } else if(password.length()<6){ JOptionPane.showMessageDialog(null,"密码长度不对"); return false; } else if(password.length()>20){ JOptionPane.showMessageDialog(null,"密码超过范围"); return false; } else if(!passwordOK.equals(password)){ JOptionPane.showMessageDialog(null,"密码和密码确认不一样"); return false; } else if(type.equals("")){ JOptionPane.showMessageDialog(null,"身份不能为空"); return false; } return true; } private MySql sql=new MySql(); private LoginActionListener actionListener=new LoginActionListener(); private InternalFrameClassListener internalListener=new InternalFrameClassListener(); private JPanel panelName,panelPassword,panelPasswordOK,panelType,panelButton; private JTextField textName; private JPasswordField textPassword,textPasswordOK; private JComboBox textType; private JButton buttonOK,buttonNewly,buttonExit;} public class TestFrame extends javax.swing.JFrame { /** Creates new form TestFrame */ public TestFrame() { initComponents(); } // <editor-fold defaultstate="collapsed" desc=" 生成的代码 "> private void initComponents() { jFrame1 = new javax.swing.JFrame(); jButton1 = new javax.swing.JButton(); jButton2 = new javax.swing.JButton(); org.jdesktop.layout.GroupLayout jFrame1Layout = new org.jdesktop.layout.GroupLayout(jFrame1.getContentPane()); jFrame1.getContentPane().setLayout(jFrame1Layout); jFrame1Layout.setHorizontalGroup( jFrame1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(0, 400, Short.MAX_VALUE) ); jFrame1Layout.setVerticalGroup( jFrame1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(0, 300, Short.MAX_VALUE) ); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); jButton1.setText("jButton1"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } }); jButton2.setText("jButton2"); jButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton2ActionPerformed(evt); } }); org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .add(44, 44, 44) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) .add(jButton2) .add(jButton1)) .addContainerGap(283, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .add(87, 87, 87) .add(jButton1) .add(25, 25, 25) .add(jButton2) .addContainerGap(142, Short.MAX_VALUE)) ); pack(); }// </editor-fold> private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {// TODO 将在此处添加您的处理代码: this.jFrame1.setVisible(false); } private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {// TODO 将在此处添加您的处理代码: this.jFrame1.setVisible(true); } public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new TestFrame().setVisible(true); } }); } // 变量声明 - 不进行修改 private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JFrame jFrame1; // 变量声明结束 } JAVA 批量提交到数据库的问题 对数据库ResultSet的操作? 做个调查,有时间的帮忙填个表,谢谢各位了! FTPClient能不能获取服务器上文件的精确的修改时间 有关字体及图形的问题!!!!!!!!!!!!!1 平推打印机的问题 初学者请教接口问题:new线程对象时传入new Runnable()是多态吗?接口不是不能实例化吗? java网络编程问题 关于滚屏的问题 图形操作的一个问题 黑箱分析应用程序的网络传输 顶了也有分 请问如何在ireport设置横向版面啊?
* 注册
*/
import javax.swing.JInternalFrame;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JPasswordField;
import javax.swing.JComboBox;
import javax.swing.JPanel;
import javax.swing.event.InternalFrameEvent;
import javax.swing.event.InternalFrameListener;
import javax.swing.JOptionPane;import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.GridLayout;
public class LoginInternalFrameClass extends JInternalFrame{//注册窗体
public LoginInternalFrameClass() {
super("注册",false,true,false,true);
setSize(350,500);
setLayout(new GridLayout(5,1));
panelName=new JPanel();
textName=new JTextField(15);
panelName.add(new JLabel("账号"));
panelName.add(textName); panelPassword=new JPanel();
textPassword=new JPasswordField(15);
panelPassword.add(new JLabel("密码"));
panelPassword.add(textPassword); panelPasswordOK=new JPanel();
textPasswordOK=new JPasswordField(15);
panelPasswordOK.add(new JLabel("确认密码"));
panelPasswordOK.add(textPasswordOK); panelType=new JPanel();
textType=new JComboBox();
textType.setEditable(true);
textType.addItem("");
textType.addItem("普通用户");
textType.addItem("VIP");
textType.addItem("管理员");
panelType.add(new JLabel("身份"));
panelType.add(textType); panelButton=new JPanel();
buttonOK=new JButton("确定");
buttonNewly=new JButton("重置");
buttonExit=new JButton("退出"); buttonOK.addActionListener(actionListener);
buttonNewly.addActionListener(actionListener);
buttonExit.addActionListener(actionListener); panelButton.add(buttonOK);
panelButton.add(buttonNewly);
panelButton.add(buttonExit); addInternalFrameListener(internalListener); add(panelName);
add(panelPassword);
add(panelPasswordOK);
add(panelType);
add(panelButton);
}
private class InternalFrameClassListener implements InternalFrameListener{
public void internalFrameOpened(InternalFrameEvent e) {
} public void internalFrameClosing(InternalFrameEvent e) {
int i=JOptionPane.showConfirmDialog(null,"是否退出");
if(i==0){
setVisible(true);
}
} public void internalFrameClosed(InternalFrameEvent e) {
} public void internalFrameIconified(InternalFrameEvent e) {
} public void internalFrameDeiconified(InternalFrameEvent e) {
} public void internalFrameActivated(InternalFrameEvent e) {
} public void internalFrameDeactivated(InternalFrameEvent e) {
} }
private class LoginActionListener implements ActionListener{
public void actionPerformed(ActionEvent event){
String name=String.valueOf(textName.getText());
String password=String.valueOf(textPassword.getPassword());
String passwordOK=String.valueOf(textPasswordOK.getPassword());
String type=String.valueOf(textType.getSelectedItem());
if(event.getSource()==buttonOK){
if(isLogin(name,password,passwordOK,type)){
if(sql.isLoginSqlServer(name,password,passwordOK,type)){
JOptionPane.showMessageDialog(null,"注册成功");
textName.setText("");
textPassword.setText("");
textPasswordOK.setText("");
textType.setSelectedItem("");
}
else{
JOptionPane.showMessageDialog(null,"系统繁忙,请与管理员联系!");
}
}
}
else if(event.getSource()==buttonNewly){
textName.setText("");
textPassword.setText("");
textPasswordOK.setText("");
textType.setSelectedItem("");
}
else if(event.getSource()==buttonExit){
int i=JOptionPane.showConfirmDialog(null,"是否退出");
if(i==0){
setVisible(false);
}
}
}
}
public boolean isLogin(String name,String password,String passwordOK,String type){
if(name.equals("")){
JOptionPane.showMessageDialog(null,"用户名不能为空");
return false;
}
else if(name.length()<6){
JOptionPane.showMessageDialog(null,"用户名长度不对");
return false;
}
else if(name.length()>20){
JOptionPane.showMessageDialog(null,"用户名长度超过范围");
return false;
}
else if(password.equals("")){
JOptionPane.showMessageDialog(null,"密码不能为空");
return false;
}
else if(password.length()<6){
JOptionPane.showMessageDialog(null,"密码长度不对");
return false;
}
else if(password.length()>20){
JOptionPane.showMessageDialog(null,"密码超过范围");
return false;
}
else if(!passwordOK.equals(password)){
JOptionPane.showMessageDialog(null,"密码和密码确认不一样");
return false;
}
else if(type.equals("")){
JOptionPane.showMessageDialog(null,"身份不能为空");
return false;
}
return true;
}
private MySql sql=new MySql();
private LoginActionListener actionListener=new LoginActionListener();
private InternalFrameClassListener internalListener=new InternalFrameClassListener();
private JPanel panelName,panelPassword,panelPasswordOK,panelType,panelButton;
private JTextField textName;
private JPasswordField textPassword,textPasswordOK;
private JComboBox textType;
private JButton buttonOK,buttonNewly,buttonExit;
}
public class TestFrame extends javax.swing.JFrame {
/** Creates new form TestFrame */
public TestFrame() {
initComponents();
} // <editor-fold defaultstate="collapsed" desc=" 生成的代码 ">
private void initComponents() {
jFrame1 = new javax.swing.JFrame();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton(); org.jdesktop.layout.GroupLayout jFrame1Layout = new org.jdesktop.layout.GroupLayout(jFrame1.getContentPane());
jFrame1.getContentPane().setLayout(jFrame1Layout);
jFrame1Layout.setHorizontalGroup(
jFrame1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(0, 400, Short.MAX_VALUE)
);
jFrame1Layout.setVerticalGroup(
jFrame1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(0, 300, Short.MAX_VALUE)
); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jButton1.setText("jButton1");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
}); jButton2.setText("jButton2");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
}); org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(44, 44, 44)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
.add(jButton2)
.add(jButton1))
.addContainerGap(283, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(87, 87, 87)
.add(jButton1)
.add(25, 25, 25)
.add(jButton2)
.addContainerGap(142, Short.MAX_VALUE))
);
pack();
}// </editor-fold> private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO 将在此处添加您的处理代码:
this.jFrame1.setVisible(false);
} private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO 将在此处添加您的处理代码:
this.jFrame1.setVisible(true);
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new TestFrame().setVisible(true);
}
});
}
// 变量声明 - 不进行修改
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JFrame jFrame1;
// 变量声明结束
}