java程序界面源码,用Java仿金山卫士写的界面(含源码)

编程入门 行业动态 更新时间:2024-10-26 04:25:14

java程序界面<a href=https://www.elefans.com/category/jswz/34/1770099.html style=源码,用Java仿金山卫士写的界面(含源码)"/>

java程序界面源码,用Java仿金山卫士写的界面(含源码)

总结这一学期学习用java做界面的一些经验,整个界面是在netbeans 6.9下面开发的。

先看界面效果图。

主界面结构图:

这里总结一下用到的技术:

1.有背景的,去掉了默认标题栏的JFrame。

设置背景,主要是通过在layeredPane中添加一个JLabel作为背景,然后把顶层内容窗格设置成透明实现:

ImageIcon img = new ImageIcon(getClass().getResource("/images/bluebg.png"));//获得图片资源

imgLabel.setIcon(img);

imgLabel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));//设置JLabel边框

this.getLayeredPane().add(imgLabel, new Integer(Integer.MIN_VALUE));// 将图片添加到layeredPane

imgLabel.setBounds(0,0,img.getIconWidth(), img.getIconHeight());

((JPanel)getContentPane()).setOpaque(false);// 将contentPane设置成透明的

去掉默认标题栏(下面这段代码我是写在构造方法里面):

this.setUndecorated(true); // 去掉窗口的装饰

this.getRootPane().setWindowDecorationStyle(JRootPane.NONE);

2.可以实现拖动,关闭窗口,最小化窗口的菜单面板

实现拖动,继承JPanel并加入下面代码,在构造方法里面要加入setDragable();:

private JFrame jFrame;

Point loc = null;

Point tmp = null;

boolean isDragged = false;

@SuppressWarnings("unchecked")

private void setDragable() {

this.addMouseListener(new java.awt.event.MouseAdapter() {

public void mouseReleased(java.awt.event.MouseEvent e) {

isDragged = false;

jFrame.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));

}

public void mousePressed(java.awt.event.MouseEvent e) {

tmp = new Point(e.getX(), e.getY());

isDragged = true;

jFrame.setCursor(new Cursor(Cursor.MOVE_CURSOR));

}

});

this.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {

public void mouseDragged(java.awt.event.MouseEvent e) {

if(isDragged) {

loc = new Point(jFrame.getLocation().x + e.getX() - tmp.x,

jFrame.getLocation().y + e.getY() - tmp.y);

jFrame.setLocation(loc);

}

}

});

}

}

实现关闭和最小化代码只要把相应代码加入按钮事件里面就可以:

关闭窗口代码,有提示是否要关闭:

int flag = JOptionPane.showConfirmDialog(null, "Sure to close?",

"Care!", JOptionPane.YES_NO_OPTION,

JOptionPane.INFORMATION_MESSAGE);

if(JOptionPane.YES_OPTION == flag){

System.exit(0);

}else{

return;

}

最小化代码:

this.setExtendedState(JFrame.ICONIFIED);

3.可以自由切换的半透明JPanel

半透明效果,继承JPanel,重写paintComponent方法,画一张半透明图片作为背景,并把Jpanel设置成透明,              protected void paintComponent(Graphics g){

super.paintComponent(g);

ImageIcon img = new ImageIcon(getClass().getResource("/images/fuzzy.png"));

img.paintIcon(this,g,0,0);

}

通过点击menuPanel面板上的四个按钮,切换成不同的面板。原理,mainPanel使用卡片布局(java.awt.CardLayout),并添加四个半透明JPanel,

通过四个按钮切换面板通过以下代码实现: ((CardLayout)mainPanel.getLayout()).show(mainPanel,"card2");//mainPanel为设置了CardLayout的JPanel,"Card2"为面

板的卡片名字,并不是面板的变量名

其他技术要点:

图形按钮:

setBorderPainted(false);//取消边框显示

setContentAreaFilled(false);//取消背景填充

setFocusPainted(false);//取消获得焦点时候描画边框

setRolloverIcon(); //设置当鼠标滑过时候显示的图标

欢迎交流学习

更多推荐

java程序界面源码,用Java仿金山卫士写的界面(含源码)

本文发布于:2024-03-11 19:47:45,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1729764.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:源码   界面   金山   卫士   程序

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!