`

Swing 经验总结

    博客分类:
  • java
阅读更多
1. JFrame对象一般可以直接向里面添加数据,但是在设置背景颜色时得用:Container f = new JFrame(“test”).getContentPane();

2. pack()是设置窗体大小自适应其内组件,setSize()为设置其显示的大小。

3. 默认关闭窗体JFrame时,是隐藏。要想真退出。请加入setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JFrame.EXIT_ON_CLOSE是一整形常量,值为3。

4. 加载GIF图片:
MediaTracker tracker = new MediaTracker(this);
Image img = new ImageIcon (getClass().getResource(“test.gif”)).getImage():
Tracker.addImage(img,0):
try{
  tracker.waitForAll();
 }catch(Exception e)
{}
此后就可以对完整的gif进行操作了。

5. 光标移动到组件上给出提示:setToolTipText(”this is tip”);

6. JScrollPane可以通过setVerticalScrollBarPolicy(int policy)
和setHorizontalScrollBarPolicy(int policy)来选择是否显示滚动条。

7.弹出消息框:JOptionPane.showMessageDialog(btn,new String (“test”));
弹出错误提示:JOptionPane.showMessageDialog(null,"错误信息","错误框标题",JOptionPane.ERROR_MESSAGE);

8. 文本输入框右对齐:SetHorizontalAlignment(JTextField.RIGHT);

9.  读取JAR包内资源,应该使用:getClass().getResource();

10. 容器布局为空后——setLayout(null),其内组件应setBounds();

11.内存回收:if(Runtime.getRuntime().freeMemory()<Runtime.getRuntime().totalMemory()/3)
{
 System.gc();
}

12.  JFrame 窗口不可最大化:setResizable(false);

13. 应用程序和applet小程序共存:直接把applet往jframe里面加就成应用程序。

14. 让窗口居中(屏幕)显示:setLocationRelativeTo(null):
或者用:
Toolkit kit = Toolkit.getDefaultToolkit():
Dimension screenSize = kit.getScreenSize();
f.setLocation((screenSize.Width-f.getWidth())/2, (screenSize.Height-f.getHeight())/2);

15. 选择皮肤感官:
try{
UIManager.setLookAndFeel ( "com.sun.java.swing.plaf.motif.MotifLookAndFeel");
            SwingUtilities.updateComponentTreeUI(f);
}

16. 密码框可设setEchoChar(‘#’);或者密码时 pwd = new String(password.getPassword());

17. 用JlayeredPane添加组件时候可以设置深度。

18. 区别单双击事件:
if(e.getClickCount ==1)
{}else if(e.getClickCount ==2){}

19. JAVA2D 中设置虚线:
float [] dash = {2.0f,4.0f};
g2.setStroke(
new BasicStroke(2.0f, BasicStroke.CAP_ROUND,BasicStroke.JOIN_BEVEL,2.0f,dash,2.0f));

20. JAVA2D 中设置字体笔画大小:
Font cf = g.getFont();
Font newf = new Font(cf.getName(),cf.getStyle(),cf.getSize()+20);
g.setFont(newf);

21.让树无图标标签
((DefaultTreeCellRenderer)tree.getCellRenderer()).setOpenIcon(null);
((DefaultTreeCellRenderer)tree.getCellRenderer()).setClosedIcon(null);
((DefaultTreeCellRenderer)tree.getCellRenderer()).setDisabledIcon(null);
((DefaultTreeCellRenderer)tree.getCellRenderer()).setLeafIcon(null);

22.竖着显示滑块
new JSlider(SwingConstants.VERTICAL,min,max,initialValue);

23.通过标尺显示滑块
slider.setMajorTickSpacing(20);
slider.setPaintTicks(true);
slider.setPaintLabels(true);

24.让滑块自动对齐到标尺
slider.setSnapToTicks(true);

25.滑块事件
addChangeListener
ChangeListener -> stateChanged(ChangeEvent event)

26.滑块标尺特殊化
HashtMap map = new HashMap();
map.put(new Integer(0),new JLabel("A"));
slider.setLabel(map);

27.多选单选按钮
JCheckBox 和 JRadioButton 其中单选放入ButtonGroup对象中。
判断是否选中:isSelected()
获取标签用:getText();
事件:ItemListener
方法:itemStateChanged(ItemEvent event)

28.让树一开始就全部展开
expandAll(tree,new TreePath(tree.getModel().getRoot()));
其中有:
public void expandAll (JTree tree,TreePath path)
{
    tree.expandPath(path);
    Obect parent = path.getLastPathComponent();
    TreeModel model = tree.getModel()
    if(model ==null)return;
    if(model.isLeaf(parent)) return;
    int size = model.getChildCount(parent);
    for(int i = 0 ;i<size;i++)
    {
        Object child = model.getChild(parent,i);
        expandAll(tree,path.pathByAddingChild(child));
    }
}

29.树节点匹配:
TreePath path = tree.getNextMatch(str,0,Positon.Bias.Forward);
if(path !=null)
{
    tree.setSelectionPath(path);
}

30.获取树节点

TreeSelectionListener->valueChanged(TreeSelectionEvent e)
TreePath path = e.getPath();
String info = path.getLastPathComponent().toString();
而这里获取到是最后那个选择节点,如成都。
JTree tree = (JTree)e.getSource();
TreePath tp= tree.getPathForLorLocation(e.getPoint().x,e.getPoint().y);
这个PATH是完整的节点名,比如:四川,成都

31.截屏程序核心:
BufferedImage fullScreenImage = robot.createScreenCapture (new Rectangle (
                Toolkit.getDefaultToolkit ().getScreenSize ()));
        ImageIcon icon = new ImageIcon (fullScreenImage);
利用 fullScreenImage.getSubimage(int x,int y,int w,int h)得到子图象(其中的矩形范围是鼠标拖动事件而得到)
ImageIO.write (fullScreenImage.getSubimage(int x,int y,int w,int h),"png","out.png");

界面上:1.继承JLabel 覆盖起paint方法;
    2.JPanel 从(JPanel)Dialog.getContentPane()来,JLabel 添加进JPanel;
    3.Dialog设置为屏幕大小、不显示边框等饰物dialog.setUndecorated (true);(JFrame中其实也有这个方法。)
    4.设置十字光标,dialog.setCursor (Cursor.getPredefinedCursor (Cursor.CROSSHAIR_CURSOR));
        5.设置为模态 dialog.setModal (true);


















分享到:
评论

相关推荐

    基于swing的本地经验总结系统

    基于swing的本地经验总结系统,帮助程序员作简单的经验管理,非喜勿喷(含源码)。

    Swing技术总结

    纯属编程经验,做的不好请勿见笑

    JAVA_精通swing程序设计

    有关java设计,编程的一些经验的总结.

    基于Swing技术下的酒店客房信息管理系统源码+数据库+WORD毕业论文文档.zip

    本文介绍了酒店客房管理系统的开发过程,详尽论述了需求分析、系统分析、概要设计、详细设计、以及测试与调试的整个开发过程,总结了开发过程中的经验及本系统今后的改进方向。 关键词:SWING;MYSQL;信息管理;...

    swing界面设计之JTree

    经验汇总 60 1. 初始化 60 2. 三个经常使用的取值函数 60 3. 根据node得到path: 60 4. 根据Path展开到该节点 60 5. 根据path设定该节点选定 61 6. 选中节点的方法 61 7. 滚动到可见位置 61 8. 给JTree添加右键弹出...

    基于Swing技术下的酒店客房信息管理系统源码含文档.zip

    本文介绍了酒店客房管理系统的开发过程,详尽论述了需求分析、系统分析、概要设计、详细设计、以及测试与调试的整个开发过程,总结了开发过程中的经验及本系统今后的改进方向。 关键词:SWING;MYSQL;信息管理;酒店...

    使用设计模式实现的花店订购系统,前端用javaswing

    设计模式是一种被广泛接受和验证的面向对象设计经验的总结,可以提供可复用的解决方案,并促进代码的可读性、可维护性和可扩展性。在项目开发后,我们深刻学习设计模式给我们编码带来的方便,具体如下: 在需要确保...

    编程实践:Java进阶100例

    编者结合自己多年来在Java研发和技术指导岗位上的经验,总结和汲取Java最核心的技术和能力,为广大Java爱好者提供更好的系统学习Java知识的方法和方向。 目录: 第一章:Java入门; 第二章:MyEclipse的基本...

    Java计算器实验报告(1).doc

    在以后的编 程中我会吸取经验,养成认真、严谨的编程习惯。 附:程序清单 1. import javax.swing.JFrame; public class Calculator { public static void main(String[] paramArrayOfString) { CalculatorFrame ...

    “打坏蛋”游戏设计,java设计

    用JAVA设计这款经典游戏,包括JAVA的技术与多线程的应用,通过Swing组件叠加来分层显示,用时间任务来启动线程。用软件工程的标准,开发方法进行科学的建模。通过数据结构的分析与规划...最后总结经验,书写开发心得。

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    完全站在没有编程经验读者的角度,手把手教会读者学习Java 配16小时多媒体教学视频,高效、直观 一一击破Java入门可能会遇到的难点和疑惑 抽丝剥茧,层层推进,让知识环环相扣,降低了学习的难度 通过大量的比喻、...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    完全站在没有编程经验读者的角度,手把手教会读者学习Java 配16小时多媒体教学视频,高效、直观 一一击破Java入门可能会遇到的难点和疑惑 抽丝剥茧,层层推进,让知识环环相扣,降低了学习的难度 通过大量的比喻、...

    Javaweb学生管理系统、超市管理系统、医院挂号系统、餐饮系统、电影院管理系统、双色球购买系统、银行系统、成绩管理系统

    J整合各类学生作业: 1)开发框架包含gui、swing,javaweb等 2)开发语言包含:java、python、ios、android等 3)包含各类作业案例: 学生管理系统、超市管理系统、医院挂号系统、餐饮系统、电影院管理系统、双色球...

    Java JDK 7学习笔记(国内第一本Java 7,前期版本累计销量5万册)

     《Java JDK 7学习笔记》是作者多年来教学实践的经验总结,汇集了学员在教学过程中遇到的概念、操作、应用或认证考试上的各种问题及解决方案。  《Java JDK 7学习笔记》详细介绍了JVM、JRE、Java SE API、JDK与IDE...

    快逸报表软件-免费、快速开发WEB报表的JAVA报表工具

    但凡有过项目经验的程序员都知道,项目中最烦人的就是报表,如果想自己轻松点,最好的办法就是选用某个报表工具,既可以灵活定制报表,解决很多编程的烦恼,又减轻了后续维护的工作量,可以把很多工作放给实施人员去...

    Java课程设计实验报告及全部源码流程图.doc

    尤其是由于课程 时间较紧,课上时间老师只是简单给我们讲述了一下Java Swing的基础知识,并没有去深入,而在此次课程设计中大量用到的监听事件的有关知识 需要自己去查标准文档,去网上找相关系料,这无疑对自己是一...

    Eclipse权威开发指南2.pdf

    第Ⅰ部分 使 用 Eclipse 第1章 引言 3 1.1 Eclipse作为应用程序开发 工具的宿主...... 4 1.2 不仅仅是工具的宿主,Eclipse 还作为客户端应用程序的 宿主.........1.3 什么是Eclipse?......... 1.3.1 工具与应用程序的...

    JAVA核心技术

    我也在学习中,就我的学习经验,给出以下小结。(注意:个人观点,仅供参考,欢迎指正。)??1.什么是模式???模式,即pattern。其实就是解决某一类问题的方法论。你把解决某类问题的方法总结归纳到理论高度,那就是...

    Eclipse权威开发指南3.pdf

    第Ⅰ部分 使 用 Eclipse 第1章 引言 3 1.1 Eclipse作为应用程序开发 工具的宿主...... 4 1.2 不仅仅是工具的宿主,Eclipse 还作为客户端应用程序的 宿主.........1.3 什么是Eclipse?.........

Global site tag (gtag.js) - Google Analytics