swing入門例子

// a simple exmple that can show the basis of swing
-------------------------------------------------------------------------
// import pakages which we need
import javax.swing.*;
import java.awt.*;
public class HelloCsdn
{
public static void main(String[] args)
{
HelloCsdnFrame frame=new HelloCsdnFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}
/** this part we construct a new frame HelloCsdnFrame
*/
-------------------------------------------------------------------------

class HelloCsdnFrame extends JFrame{
public HelloCsdnFrame()
{
setTitle("Hello CSDN.NET");
setSize(WIDTH,HEIGHT);
HelloCsdnPanel panel=new HelloCsdnPanel();
Container c=getContentPane();
c.add(panel);
}
public static final int WIDTH=300;
public static final int HEIGHT=200;
}
/**this part we extend our HelloCsdnFram to JFrame and
construct a new object HelloCsdnPanel and add it on the frame
/*
--------------------------------------------------------------------
class HelloCsdnPanel extends JPanel{
public void paintComponent(Graphics g){
super.paintComponent(g);
g.drawString("Hello CSDN.NET",MESSAGE_X,MESSAGE_Y);
}
public static final int MESSAGE_X=100;
public static final int MESSAGE_Y=100;
}
/** A panel that display a message
*/
  我把此程序分爲3part.每一部分都有註釋,這一段代碼是作什麼用的。 一塊兒來分析此程序:


做者:leeak出處:Java編程教學網責任編輯: 方舟 [ 2004-07-15 14:33 ]當咱們學習過了java中的基本語法,而且熟悉java的面向對象基礎之後java


  在第一部分

// import pakages which we need
import javax.swing.*;
import java.awt.*;
public class HelloCsdn
{
public static void main(String[] args)
{
HelloCsdnFrame frame=new HelloCsdnFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}
/** this part we construct a new frame HelloCsdnFrame
*/
  能夠看到咱們首先導入了2個包 swing 和 awt,建立了一個object對這個object咱們進行實例化, 而後用代碼

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show(); 來實現關閉Frame,但不是結束程序,其停止的只是程序的主線程,
  第二部分:

class HelloCsdnFrame extends JFrame{
public HelloCsdnFrame()
{
setTitle("Hello CSDN.NET");
setSize(WIDTH,HEIGHT);
HelloCsdnPanel panel=new HelloCsdnPanel();
Container c=getContentPane();
c.add(panel);
}
public static final int WIDTH=300;
public static final int HEIGHT=200;
}
/**this part we extend our HelloCsdnFram to JFrame and
construct a new object HelloCsdnPanel and add it on the frame
/*
  在此咱們把咱們創建的object繼承java的JFrame類,使他有JFrame的屬性.行爲.而後設置標題和大小,再次創建一個新的object HelloCsdnPanel 這是由於是在JFrame中實現的因此要創建容器c .把咱們創建的panel對象放入containerc中。

  第三部分

class HelloCsdnPanel extends JPanel{
public void paintComponent(Graphics g){
super.paintComponent(g);
g.drawString("Hello CSDN.NET",MESSAGE_X,MESSAGE_Y);
}
public static final int MESSAGE_X=100;
public static final int MESSAGE_Y=100;
}
/** A panel that display a message
*/ 繼續咱們繼承剛創建的HelloCsdnPanel
  到JPanel使咱們的對象有JPanel的屬性,而後咱們才能調用在frame上輸出字符的方法g.drawString
由此程序咱們一方面能夠很好的看出java的核心思想----繼承關係,另外一方面能夠看出swing的基本構架是什麼。

  他有幾個層,每一個層實現本身的什麼功能。

  5.自此咱們能夠看出frame的內部結構:

------JFrame(底層)
   |
   ---------JRoot
|
---------JLayeredPane
   |
   -----------菜單條
|
-----------內容窗格
    |
    -----------透明窗格(頂層)

  而在這6個層中咱們最關係的是菜單條和內容窗格.由於它覺定咱們的frame是什麼樣的。

編程

相關文章
相關標籤/搜索