Java Swing教程

創建一個JFrame

下面用簡單的實例演示了Java Swing創建一個能輸入內容的窗口

public class frameTest(){
  public static void Main(String args[]){
    //創建JFrame對象,JFrame用來在屏幕上顯示一個Windows窗口。
    JFrame frame = new JFrame("第一個JFrame");   
    // 建立一個文本輸入域對象,由於文本輸入域是JComponent的子類,可以採用以
    // 下方法定義。
    JComponent comp = new JTextArea();
    // 將上面建立的文本輸入域加入到frame對象
    // 默認情況下,frame的內容面板(容器)採用BorderLayout佈局,
    // 這裏是將文本輸入域放入BorderLayout佈局的Center部位。
    // 有關BorderLayout佈局的內容,請查閱
    //   http://gyfinjava.blog.com.cn/archives/2007/2161340.shtml
    frame.getContentPane().add(comp, BorderLayout.CENTER);
    // 設置其高度和寬度分別爲:288像素和188像素
    frame.setSize(288,188);
    // 顯示該Frame
    frame.setVisible(true);
  }
}

 

JFrame的預定義動作事件

 

在Java Swing教程1中的Main方法中加入以下代碼:

//當用戶選擇窗口的退出按鈕(窗口右上角的X),
//或選擇窗體功能菜單的推出項時的動作

//下行代碼可以使單擊退出按鈕時,退出該JFrame
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//下行代碼可以使JFrame的退出按鈕失效
frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

 

創建沒無邊框的Frame(Window)

該實例演示了怎樣創建一個沒有邊框的Frame(Window)。如果要創建
不顯示邊框的Frame(Window),則推薦使用JWindow。

import javax.swing.JWindow;

public class JWindowTest {
 public static void main(String[] args){
  //創建JWindows對象
     JWindow window = new JWindow();
     // 這裏,一樣可以通過教程getContentPane().add()方法爲該JWindow增加組件
     //window.getContentPane().add(JComponent, BorderLayout.CENTER);
     // 設置初始化大小
     window.setSize(200, 200);
     // 顯示該窗體
     window.setVisible(true);
 }
}

Java Swing教程4-文件選擇框

 

Java爲文件選擇框提供了JFileChooser類API。通過使用該類,可以很方便的現實文件選擇對話框。見下例:

//建立文件選擇框對象
JFileChooser fc=new JFileChooser();
//設定文件選擇框標題
fc.setDialogTitle("Open class File");
//顯示文件選擇框,在選擇後將結果儲存到returnVal變量中
int returnVal = fc.showOpenDialog(app.getFrameInstance());
//如果用戶選擇了文件,並點擊了"Opne/打開"按鈕,顯示用戶選擇的文件全名路徑,
//如果用戶點擊"Close/關閉"按鈕,以及其它方式退出文件選擇框,則什麼也不做。
  if (returnVal == JFileChooser.APPROVE_OPTION){
   File file = fc.getSelectedFile();
   System.out.println(file.getPath());
  }

注意在文件選擇對話框中,可以進行選擇目錄的操作,只需要用FileChooser對象的setFileSelectionMode()方法指定其選擇模式爲目錄選擇。見下面代碼

//上例中可以在文件對話框顯示語句前加上下面代碼,使對話框成爲目錄選擇對話框
fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

在文件選擇過程中,我們可以爲文件選擇對話框設置過濾器,有了過濾器的對話框,會用下拉列表的方式將過濾的文件名特徵顯示在"文件類型"組合框中,並將不符合條件的文件名和目錄名過濾掉(不顯示)。

爲一個文件選擇對話框設置過濾器需要定義過濾器類,見下例:

public class ClassFileFilter extends FileFilter{
 public boolean accept(File f) {
  String filename = f.getName();
        return filename.endsWith(".class");
 }
 public String getDescription() {
  return "*.class";
 }
}

該類定義了一個過濾Java類文件"*.class"的過濾器。
將它增加到文件選擇對話框中,可以過濾出以.class爲尾綴的文件。見下面代碼:

fc.addChoosableFileFilter(new ClassFileFilter());

針對一個對話框,我們可以爲其加裝多個過濾器。這裏有對過濾器更加詮釋的代碼:
public class ImageFilter extends FileFilter {
    //Accept all directories and all gif, jpg, tiff, or png files.
    public boolean accept(File f) {
        if (f.isDirectory()) {
            return true;
        }
        String extension = Utils.getExtension(f);
        if (extension != null) {
            if (extension.equals(Utils.tiff) ||
                extension.equals(Utils.tif) ||
                extension.equals(Utils.gif) ||
                extension.equals(Utils.jpeg) ||
                extension.equals(Utils.jpg) ||
                extension.equals(Utils.png)) {
                    return true;
            } else {
                return false;
            }
        }
        return false;
    }
    public String getDescription() {
        return "Just Images";
    }
}
該過濾器爲圖像文件過濾器。

 

Java Swing教程5-JTable

 

利用J2SE提供的JTable組件類可以很方便的實現應用程序中的表格功能,以實例闡述如下:

該實例運行結果如下:

Java <wbr>Swing教程

其代碼如下:

import java.awt.BorderLayout;
import java.awt.Dimension;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;

public class Test01 {
 public static void main(String[] args) {
  //聲明列名數組
  String[] columnNames = { "姓名", "性別", "年齡", "籍貫", "婚否" };
  //聲明數據二維數組
  Object[][] data = {
    { "趙剛", "男", new Integer(18), "北京", new Boolean(false) },
    { "錢霞", "女", new Integer(28), "北京", new Boolean(true) },
    { "孫大偉", "男", new Integer(32), "上海", new Boolean(false) },
    { "李民", "男", new Integer(30), "南京", new Boolean(true) },
    { "周麗麗", "女", new Integer(34),"重慶",new Boolean(false) } };
  //創建JTable對象t
  final JTable t = new JTable(data, columnNames);
  //設置JTable對象的可視區,超出部分會用下面的滾動條來顯示
  t.setPreferredScrollableViewportSize(new Dimension(400, 70));
  //定義一個容器
  JPanel p = new JPanel();
  //在容器中加入表格和滾動條
  p.add(t);
  JScrollPane s = new JScrollPane(t);
  p.add(s);
  //設置容器爲透明的
  p.setOpaque(true);
  //以下代碼在前幾個Java Swing教程中已經講過,這裏不重複!
  JFrame f = new JFrame("JTable測試!");
  f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  f.getContentPane().add(p,BorderLayout.CENTER);
  f.pack();
  f.setVisible(true);
 }
}

發佈了46 篇原創文章 · 獲贊 9 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章