總結-swing、JFrame、JButton、JScrollPane、JLabel、JTabbedPane、JEditorPane
1、JButton內邊距(去掉按鈕里的空白):setMargin、setFocusPainted、setRolloverEnabled(鼠標懸停高亮)
2、JLabel背景不透明:setOpaque
3、JLabel/JTextField內容居中:setHorizontalAlignment
4、字體:new Font("微軟雅黑",Font.BOLD,16);
5、設置JFrame屏幕居中:先setSize,再setLocationRelativeTo(null);
6、鼠標指針(手型):setCursor(new Cursor(Cursor.HAND_CURSOR));
7、JFrame去掉裝飾:setUndecorated
8、添加圖片:Image img = ImageIO.read(new File("src/image/llj.jpg"));
g.drawImage(img, left, top, width, height, fm);
重寫paint:new ImageIcon("src/image/llj.jpg").paintIcon(fm, g, x, y);
fm.getGraphics()與fm.getContentPane().getGraphics()是有差別的
9、pane.setPreferredSize(new Dimension(0, top(0)));// 寬度設置為0時默認填滿寬度
JSrollPane:new JSrollPane(pane);
pane要setPreferredSize才能設置在JSrollPane里的大小。長度(寬度)動態設置效果更好
10、JTabbedPane:JTabbedPane tp = new JTabbedPane(JTabbedPane.TOP);// 標題欄在上面
tp.add("標題",new JPanel());
JTabbedPane頁簽改變事件監聽:addChangeListener;獲得當前選定頁簽:getSelectedComponent
11、用JTextArea生成一個JScrollPane,就成了帶滾動條的文本區域。
JTextArea:setLineWrap(true);//自動換行
setWrapStyleWord(true); //換行不斷字
JPanel里設置layout為GridLayout()或BorderLayout會默認填滿
12、JEditorPane,HTML-Hyperlink,設置setEditorable(false);才有點擊超鏈接的效果
new JEditorPane("text/html",String html);
HyperlinkListener
e.getEventType() == HyperlinkEvent.EventType.ACTIVATED
補充:
1.重寫paint方法時,先super.paint(g); 要不會出問題的。 比如設置背景色失敗。。。