Java界面編程-建立一個可以畫出圖形的簡單框架。本站提示廣大學習愛好者:(Java界面編程-建立一個可以畫出圖形的簡單框架)文章只能為提供參考,不一定能成為您想要的結果。以下是Java界面編程-建立一個可以畫出圖形的簡單框架正文
引子:總共使用3個.java文件,建立一個簡單界面編程的框架。
第1個文件:NotHelloWorldComponent.java
//NotHelloWorldComponent.java
1 import java.awt.*; 2 import java.awt.geom.*; 3 import javax.swing.*; 4 5 public class NotHelloWorldComponent extends JComponent { 6 public static final int MESSAGE_X = 75; //消息最左上角坐標 7 public static final int MESSAGE_Y = 75; 8
//定義此界面的默認尺寸 9 private static final int DEFAULT_WIDTH = 300; 10 private static final int DEFAULT_HEIGHT = 300; 11
//paintComponent()會被系統自動調用,並且系統會自動傳遞一個Graphics對象給它 12 public void paintComponent(Graphics g){ 13 //將g轉型成Graphics2D對象,作為畫筆,用來畫2D圖形 14 Graphics2D g2 = (Graphics2D)g; 15
//創建一個Rectangle2D矩形對象
//如果有其他圖形需要繪制,可以先在此處定義,再在下個部分用g2作為畫筆畫出來 16 double leftX = 50; 17 double topY = 50; 18 double width = 200; 19 double height = 150; 20 Rectangle2D rect = new Rectangle2D.Double(leftX, topY, width, height); 21
//用畫筆g2來繪制文字和矩形圖形 22 g2.drawString("Not a hello, World program", MESSAGE_X, MESSAGE_Y); 23 g2.draw(rect); 24 25 } 26
//覆蓋此函數,設置首選的尺寸大小 27 @Override 28 public Dimension getPreferredSize() { 29 return new Dimension(DEFAULT_WIDTH, DEFAULT_HEIGHT); 30 } 31 }
第2個.java文件:NotHelloWorldFrame.java
1 import javax.swing.JFrame; 2 3 public class NotHelloWorldFrame extends JFrame { 4 public NotHelloWorldFrame(){ 5 add(new NotHelloWorldComponent()); 6 pack(); //使JFrame的大小適合其包含的組件的大小 7 } 8 }
說明:JFrame是一個框架類,用來包含JPanel和JComponent。
第3個.java文件:NotHelloWorld.java
1 import java.awt.EventQueue; 2 3 import javax.swing.JFrame; 4 5 public class NotHelloWorld { 6 public static void main(String[] args) { 7 EventQueue.invokeLater(new Runnable() { //使用匿名內部類技術,創建一個線程,用線程來創建窗口程序 8 public void run() { 9 JFrame frame = new NotHelloWorldFrame(); 10 frame.setTitle("NotHelloWorldFrame"); 11 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //關閉窗口的同時,程序結束,避免內存垃圾 12 frame.setVisible(true); //開啟窗口可見 13 } 14 }); 15 } 16 }
說明:關於匿名內部類的簡單使用,參見此博客:http://www.cnblogs.com/nerxious/archive/2013/01/25/2876489.html