程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java界面編程-建立一個可以畫出圖形的簡單框架

Java界面編程-建立一個可以畫出圖形的簡單框架

編輯:關於JAVA

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved