您的位置:首页 > 产品设计 > UI/UE

一些实用的JavaGUI技巧

2017-06-04 19:11 543 查看
this.setContentPane(mainpanel);//意思是给窗体加个pane

this.setUndecorated(true);//没有任何边框和标题栏的窗口显示在界面上了。但是这里需要注意的是,setUndecroated方法必须在setVisible之前被执行,去掉关闭,最小化,最大化。等窗口。

this.setTitle("用户登录");

this.setSize(400, 563);

this.setResizable(false);//窗口大小不能改变
this.setLocationRelativeTo(null);//使窗口显示在屏幕中央.

nameLabel = new JLabel("<html><h2><font color='red'>账户:</font></h2></html>");//这里的参数表示这个输入框的长度为10列。

CheckIN = new JButton(new ImageIcon("resource/image/CommonIcon/checkIn.jpg"));
CheckIN.setBounds(120, 370, 150, 73);//使给按钮指定一个图片(效果比较好) x:组件在容器X轴上的起点 y:组件在容器Y轴上的起点 width:组件的长度 height:组件的高度

try
{
if(ls.isValid()){

// System.out.println("登录成功");
if(ls.position.equals("root")){
new rootUI(name);
}else if(ls.position.equals("manager")){
new managerUI(name);
}else if(ls.position.equals("staff")){
new staffUI(name);
}
this.dispose();
}else{
JOptionPane.showMessageDialog(null, "输入为空或者用户不存在", "用户登录反馈信息", JOptionPane.CLOSED_OPTION);
}
} catch (Exception e) {
e.printStackTrace();
}

当try语句中出现异常是时,会执行catch中的语句,java运行时系统会自动将catch括号中的Exception
e 初始化,也就是实例化Exception类型的对象。e是此对象引用名称。然后e(引用)会自动调用Exception类中指定的方法,也就出现了e.printStackTrace() ;。
printStackTrace()方法的意思是:在命令行打印异常信息在程序中出错的位置及原因。(这是白话解释,比较容易理解)

closeButton.setBackground(Color.green);//使背景色为绿色;

/*为主面板设置背景图片*/
bgImageIcon = new ImageIcon("resource/image/LoginBg/bgimage.jpg");
bgimage = new JLabel(bgImageIcon);
bgimage.setBounds(0, 0, bgImageIcon.getIconWidth(), bgImageIcon.getIconHeight());
this.getLayeredPane().add(bgimage,new Integer(Integer.MIN_VALUE));//使bgimage在最底层。this.getLayeredPane().add(background,
new Integer(Integer.MIN_VALUE)); 这句话的意思是,为前面创建的标签 设置层的深度,这里将其设置为了最底层,因为Integer.MIN_VALUE是int类型的最小值了

/*将主面板设置为框架的内容面板*/
this.setContentPane(mainpanel);
/*主面板设置为透明*/
mainpanel.setOpaque(false);

/*使窗体在屏幕中央显示*/
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize(); 
this.setLocation((screenSize.width-frameWidth)/2, (screenSize.height-frameHeight)/2);//设置初始位置

this.setUndecorated(true);
this.setContentPane(mainpanel);
this.setVisible(true);
this.setSize(frameWidth,frameHeight);

filePanel.removeAll();//清除Jpanel中的组件

JOptionPane.showMessageDialog(null,
"输入为空或者用户不存在", "用户登录反馈信息", JOptionPane.CLOSED_OPTION);

filePanel.validate();//

repaint()方法是重绘,而validate()是重载,一般来说,从一个容器中删除某个组件需要调用repaint(),而把某个组件添加到某一容器中,则需调用validate()。举个例子:

有两个JPanel分别为p1和p2,要把p2添加到p1里面,则需这样写:

p1.add(p2);

p1.validate();

要从p1中移除p2,则需这样写:

p1.remove(p2);

p1.repaint();

简单来说,添加用validate(),删除用repaint();

filePanel.updateUI();//更新面板用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: