Posted on 2007-03-07 09:52
lubaolin 阅读(448)
评论(0) 编辑 收藏
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);
转自:http://www.blogjava.net/JAVA-HE/archive/2007/02/06/98338.aspx