Java Swing基础功能整理
2016-11-14 10:35
399 查看
这里简单记录下swing一些基础功能,使用过程中可能经常会用到的一些功能。
1.简单的提示弹窗,类似js中alert弹窗,手机中常见弹窗提示等JOptionPane.showMessageDialog(this, "请填写正确参数!", "提示", JOptionPane.INFORMATION_MESSAGE); int flag = JOptionPane.showConfirmDialog(null, "清空日志前注意导出日志备份,确定清空日志?", "提示", JOptionPane.YES_NO_OPTION); //弹窗提示确定和取消,根据flag判断其操作从而进行后续逻辑。
2.此处介绍一种代码实现的提示弹窗,效果为弹窗提示后自动淡出提示框。
调用方法:new对象后调用下面代码中show()方法。
package com.fisee.ui.utils; import java.awt.BorderLayout; import java.awt.Font; import java.awt.GraphicsEnvironment; import java.awt.Rectangle; import java.awt.Window; import javax.swing.JButton; import javax.swing.JWindow; public class CPopWindow { private int _height = 30; // 气泡提示高 private int _step = 60; // 设定循环的步长 private int _stepTime = 60; // 每步时间 private int _displayTime = 2000; // 显示时间 private Font _font; // 字体 /** * 构造函数,初始化默认气泡提示设置 * */ public CPopWindow() { _font = new Font("微软雅黑", 0, 12);// 设定字体 try { JWindow.class.getMethod("setAlwaysOnTop", new Class[] { Boolean.class }); } catch (Exception e) { } } /** * 重构JWindow用于显示单一气泡提示框 * */ class ToolTipSingle extends Window { private static final long serialVersionUID = 1L; private JButton _message = new JButton(){ /** * */ private static final long serialVersionUID = 1L; @Override public void repaint() { } }; @SuppressWarnings("deprecation") public ToolTipSingle(String msg) { super(null); int cntText=msg.length(); int with = cntText*11+40; int height = _height; Rectangle screenRect = GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds(); int screenHeight = (int) screenRect.height; int screenWidth = (int) screenRect.width; int posx = screenWidth/2-with/2; int posy = screenHeight/2-height/2; setBounds(posx, posy, with, height); _message.setFont(getMessageFont()); _message.setText(msg); _message.setFocusPainted(false); //_message.setEnabled(false); add(_message, BorderLayout.CENTER); setAlwaysOnTop(true); setLocationRelativeTo(null); show(true); } /** * 动画开始 * */ public void animate() { new Animation(this).start(); } } /** * 此类处则动画处理 * */ class Animation extends Thread { ToolTipSingle _single; public Animation(ToolTipSingle single) { this._single = single; } /** * 开始动画处理 */ @SuppressWarnings("deprecation") public void run() { try { float value = 0.0f; while((value+0.02)<1.0f) { value+=0.02f; com.sun.awt.AWTUtilities.setWindowOpacity(_single, value); Thread.sleep(10); } while(_displayTime>50) { Thread.sleep(50); _displayTime = _displayTime-50; } value=1; while((value-0.02)>0f) { value-=0.02f; com.sun.awt.AWTUtilities.setWindowOpacity(_single, value); Thread.sleep(20); } } catch (Exception e) { throw new RuntimeException(e); } _single.show(false); } } /** * 设定显示信息 * * @param icon * @param msg */ public void show(String msg) { new ToolTipSingle(msg).animate(); } /** * 获得当前消息字体 * * @return */ public Font getMessageFont() { return _font; } /** * 设置当前消息字体 * * @param font */ public void setMessageFont(Font font) { _font = font; } /** * 获得显示时间 * * @return */ public int getDisplayTime() { return _displayTime; } /** * 设置显示时间 * * @param displayTime */ public void setDisplayTime(int displayTime) { this._displayTime = displayTime; } /** * 获得循环步长 * * @return */ public int getStep() { return _step; } /** * 设定循环步长 * * @param _step */ public void setStep(int _step) { this._step = _step; } public int getStepTime() { return _stepTime; } public void setStepTime(int _stepTime) { this._stepTime = _stepTime; } public static void main(String[] argv) { new CPopWindow().show("全部任务已经载入完成!"); } }更多提示效果可才考:http://www.th7.cn/Program/java/201511/689070.shtml
3.panel的设置边框,这里简单介绍两种个人常用的边框:凸起边框、带标题的边框
JPanel panel = new JPanel(); panel.setBorder(BorderFactory.createRaisedBevelBorder());//凸起 panel.setBorder(BorderFactory.createTitledBorder("标题"));//带标题的更多边框样式可参考:http://vcsos.com/article/pageSource/120322/20120322081356.shtml
4.JTextArea自动滚动到底部和停止滚动
//自动滚动 public void updateTextarea() { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { if (mCellRetrieveField.getText() != null && autoScrollToBottom) { mCellRetrieveField.setSelectionStart(mCellRetrieveField .getText().length()); } } }); } //移动滚动条后停止滚动 final JScrollBar bar = jScrollPane.getVerticalScrollBar(); bar.addMouseListener(new MouseAdapter() { @Override public void mouseReleased(MouseEvent e) { if(bar.getMaximum() == bar.getValue()+bar.getHeight()){ autoScrollToBottom = true; }else{ autoScrollToBottom = false; } } });
相关文章推荐
- Java Swing入门基础 (转)
- Java 基础常用功能语句
- 跟我学Java Swing之游戏设计(2)-Java基础-Java-编程开发
- java的反射技术功能十分强大,整理一些资料!!
- Java基础:Swing中的事件处理详细资料
- Java Swing入门基础
- Java 基础常用功能语句
- JAVA 和.NET在安全功能的比较-Java基础-Java-编程开发
- 学习使用J2EE Web应用的事件功能-Java基础-Java-编程开发
- java基础学习整理(一)
- java基础 ---Swing窗口容器和布局
- JAVA相关基础知识(收集,重新整理格式)
- Java的常用方法--Swing基础
- 凤凰浴火 JBuilder 2006新功能赏析-Java基础-Java-编程开发
- 用Java Swing作一个日历控制程序-Java基础-Java-编程开发
- Java2实用教程(第二版)程序代码——第二十五章 Java Swing 基础
- java的反射技术功能十分强大,整理一些资料!!
- Java基础知识资料整理
- 疯狂JAVA讲义---第十二章:Swing编程(三)拖放功能
- java基础学习整理(二)