iteye_7290 2010-05-20 10:28
浏览 312
已采纳

界面时而显示不了或组件显示不全,不知是什么问题,请帮忙看下代码吧

package com.wangyj.kindergarten.ui.frames;

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.HeadlessException;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JSeparator;
import javax.swing.JTextField;

import com.wangyj.kindergarten.business.AdminBusiness;
import com.wangyj.kindergarten.business.impl.AdminBusinessImpl;

public class LoginFrame extends JFrame {

private AdminBusiness adminBiz=new AdminBusinessImpl();

private JPanel northPanel = new JPanel();

private JPanel centerPanel = new JPanel();

private JPanel southPanel=new JPanel();

private JLabel imageLabel=new JLabel();

private JTextField adminNameText=new JTextField();

private JPasswordField adminPwd=new JPasswordField();

private JButton loginButton=new JButton();

public LoginFrame() throws HeadlessException {

    this.init();
}

private void init(){
    this.setVisible(true);
    this.setSize(350, 280);
    this.setResizable(false);
    this.setTitle("幼儿园管理系统");
    this.setLayout(new BorderLayout());
    this.setIconImage(new ImageIcon("images/8.jpg").getImage());

    int width=(int)Toolkit.getDefaultToolkit().getScreenSize().getWidth()/2;        int height=(int)Toolkit.getDefaultToolkit().getScreenSize().getHeight()/2;
    setLocation(width-getWidth()/2,height-getHeight()/2);

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    this.add(northPanel,BorderLayout.NORTH);
    this.add(centerPanel,BorderLayout.CENTER);
    this.add(southPanel,BorderLayout.SOUTH);

    JPanel panel1=new JPanel(new BorderLayout());

// JPanel panel2=new JPanel(new BorderLayout());
JPanel panel2=new JPanel(new GridLayout(1,3,3,0));
JPanel panel3=new JPanel(new BorderLayout());

// panel1.setBorder(BorderFactory.createEtchedBorder());

    northPanel.add(panel1);
    centerPanel.add(panel2);
    southPanel.add(panel3);

    /********************************************************************************/

    JPanel inner1=new JPanel(new GridLayout(1,1));
    imageLabel.setIcon(new ImageIcon("images/7.jpg"));
    inner1.add(imageLabel);
    panel1.add(new JSeparator(),BorderLayout.NORTH);
    panel1.add(inner1,BorderLayout.CENTER);
    panel1.add(new JSeparator(),BorderLayout.SOUTH);

    /********************************************************************************/

    JLabel adminNameLabel=new JLabel("管理员帐号:");
    JLabel adminPwdLabel=new JLabel("管理员密码:");
    JPanel inner2=new JPanel(new GridLayout(2,1,0,12));
    JPanel inner2_1=new JPanel(new FlowLayout(FlowLayout.RIGHT));
    JPanel inner2_2=new JPanel(new FlowLayout(FlowLayout.RIGHT));
    inner2_1.add(adminNameLabel);
    inner2_2.add(adminPwdLabel);
    inner2.add(inner2_1);
    inner2.add(inner2_2);
    panel2.add(inner2);

    JPanel inner3=new JPanel(new GridLayout(2,1,0,12));
    adminNameText.setText("请输入帐号名...");
    adminNameText.setColumns(15);
    adminPwd.setColumns(15);
    inner3.add(adminNameText);
    inner3.add(adminPwd);
    panel2.add(inner3);

    JPanel inner4=new JPanel(new GridLayout(2,1,0,12));
    inner4.add(new JLabel("*"));
    inner4.add(new JLabel("*"));
    panel2.add(inner4);

    /********************************************************************************/

    JPanel inner5=new JPanel(new GridLayout(1,5));
    loginButton.setText("登  录");

// loginButton.setMnemonic(KeyEvent.VK_ENTER);
inner5.add(loginButton);
inner5.add(new JPanel());
inner5.add(new JPanel());
inner5.add(new JPanel());
inner5.add(new JPanel());
panel3.add(new JSeparator(),BorderLayout.NORTH);
panel3.add(inner5,BorderLayout.CENTER);

    /*******************************************************************************/

    adminNameText.addMouseListener(new MouseAdapter(){

        @Override
        public void mousePressed(MouseEvent e) {

            adminNameText.setText("");
        }

    });

    loginButton.addActionListener(new ActionListener(){

        @Override
        public void actionPerformed(ActionEvent e) {
            login();
        }
    });

    loginButton.addKeyListener(new KeyAdapter(){
        public void keyPressed(KeyEvent e) {
            if(e.getKeyChar()==KeyEvent.VK_ENTER){
                System.out.println("enter.....");
                login();
            }

        }
    });

}

private void login(){
    String name=adminNameText.getText().trim();
    String password=String.valueOf(adminPwd.getPassword()).trim();
    if(name.equals("")||name==null||password.equals("")||password==null){
        JOptionPane.showMessageDialog(this, "帐号或密码不能为空!");
    }else{
        boolean success=adminBiz.login(name, password);
        if(success){
            new MainFrame();
            this.setVisible(false);
        }else{
            JOptionPane.showMessageDialog(this, "帐号、密码不正确!");
        }
    }
}

   public static void main(String[] args){
     new LoginFrame();
 }

}

  • 写回答

1条回答 默认 最新

  • g_johnson_lee 2010-05-20 15:57
    关注

    setVisible()在init方法最后调用

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥15 钢筋实图交点识别,机器视觉代码
  • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
  • ¥50 400g qsfp 光模块iphy方案
  • ¥15 两块ADC0804用proteus仿真时,出现异常
  • ¥15 关于风控系统,如何去选择
  • ¥15 这款软件是什么?需要能满足我的需求
  • ¥15 SpringSecurityOauth2登陆前后request不一致