close

eclipse 安裝與管理

1 前言

電腦是一台硬體,必須要由軟體來掌控運用。軟體是由程式碼所組成的,而一個好的編寫程式碼的環境工具扮演一個非常重要的角色。業界將此一整合後的編寫與執行程式碼的環境工具稱為「整合開發環境 (Integrated Development Environment; IDE)。目前的軟體產業中,較為知名的IDE共有三種,分別是 eclipse, netbeans, visual studio。eclipse 的主導者是IBM, netbeans的主導者是Oracle,visual studio 是微軟的產品。eclipse 與netbeans皆是完全免費的IDE,而 visual studio則是 express版是免費的,但是標準版與進階版卻是要付費購買的。

由於eclipse被Google官方所選定,用來做為整合Android Development Kit (ADK) 的IDE,所以近年來己被眾多程式開發人員所採用。而且eclipse可以同時整合多種程式語言的 Development Kit/ API,也同時提供在 Windows 與Linux作業系統上執行的軟體版本,所以eclipse被重視的程度只會愈來愈高。因此本文主要說明如何在Linux 環境與Windows環境中,進行eclipse及Java Development Tools /Kit與 C/C++ Development Tools/Kit的安裝與管理。

同時也會說明eclipse在Linux與Windows環境中的某些差異。其中,在Linux環境中,使用者所編寫的java程式或C/C++程式的「執行檔」,不可以存放在 NTFS資料分割區中,只能存放在 Linux類型的檔案系統分割區中,例如,執行檔必須存放在ext4檔案系統分割區中,才能被正確的執行,否則,縱使程式碼完全正確,執行時仍舊會出現錯誤訊息,無法正確的執行。

2 eclipse 的安裝

 

3 eclipse 中安裝與使用圖形化物件編輯器-WindowBuilder

3.1 安裝Window Builder

以前 eclipse 中若想要安裝圖形化物件編輯器,就必須安裝 eclipse visual editor 等套件,但此類套件很不好用。Google 也是 eclipse的主要贊助者之一,由於Google買下了 Window Builder此一原本商用軟件的公司,並將此一 Window Builder 免費開放給 eclipse來使用,由於 Window Builder 明顯優於 visual editor,所以大部份的系統開發人員就轉而使用Window Builder 來進行視窗畫面界面物件的開發。想要安裝Window Builder可至此一網址來進入Window Builder在eclipse 中的一個Project 首頁,而點按畫面中的「download」頁次,就會出現下載的網頁,使用者應該依據不同的eclispe版本來下載。當點按某一版本旁的「link」超連結時,就會出現另一個網頁,其中就是如何安裝Window Builder的說明,主要的內容是將所出現的安裝說明的該網頁之網址,例如,「http://download.eclipse.org/windowbuilder/WB/release/R201309271200/4.2/」,在進入eclispe中,點按「Help -> Install New Software」。在「Work with」欄位中直接將上述的網址複製到該欄位中,或是直接點按「Add」鈕出現一個視窗,在「Name」欄位中,輸入一個用於自己識別用的名稱,例如,「WindowBuilder」,在「Location」欄位中,複製該網址,然後按「OK」回到原本的視窗畫面,在中間的表格中就會出現「Swin Designer, SWT Desinger, WindowBuilder」等項目,然後全部勾選後點按「Next」,就會出現要安裝軟件的細項,再點按「Next」,再點按「I accept the terms of license agreement」,再點按「Finish」就會下載安裝WindowBuilder相關的套件了。安裝完成Windows Builder後,也記得要點按「Help -> Check for updates」來更新 eclipse,如此才可以在新增Window Builder中的某些物件,並進入「Design」的頁次後,整個畫面才不會亂掉。

3.2 使用Window Builder

首先依照一般的方式點按「File/New/Java Project」建立一個Java專案,接著專案瀏覽視窗中點開該專案,在src目錄中點按右鍵再點按「New/Other」,再點按「Winodw Builder」以展開可以使用的各圖形化物件。然後系統就會建立一個附檔名為java的原始程式檔。此時若點按在程式產始碼視窗下方的「Design」頁次,就會出現圖形化物件編輯的四個視窗。左邊的兩個視窗是屬於「structure」物件結構視窗,其中第1個視窗為componete元件視窗,第二個視窗為元件屬性視窗。第三個視窗為「pallete」視窗,亦即系統所提供的物件工具箱。第四個視窗為真正使用者設計畫面的視窗。

一般預設的視窗物件配置格式(layout)是屬於「Flow layout」,也就是所有物件之間的關係是相對的,簡單的說,就是一但移動或新增一個視窗物件,系統就會自動(強制)為使用者安排各個物件之間應該出現在那一個位置,以及物件的大小。若想改變成由使用者強制固定某一個視窗物件在那一個位置,則在strcuture的component視窗中,在「getContentPane()」那一列上,點按右鍵,再點按「Set Layout/Absolute Layout」,或是在component視窗隔壁的屬性視窗中的「Layout」欄位中,點按向下箭來選擇「Absolute Layout」即可。在操作過程中可以發現,其實有很多種不同的畫面物件配置的方式可供選擇。

若想在第4個視窗中,新增一個視窗物件,則只要在Pallete物件工具箱中拖曳一個物件到第4個視窗中,即可以新增一個物件在第4個視窗中。

3.4 一個Button的 Window Builder Java 程式範例

例如想要的畫面描述如下:

*****

請輸入任意的文數字句子:___________

你輸入的句子為:...

請按此確定鈕

*****

則當輸入某一段句子後的範例畫面:

====

請輸入任意的文數字句子:Hello______

你輸入的句子為:Hello

請按此確定鈕

====

完整的程式範例如下:

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;


public class Button01 {

    private JFrame frame;
    private JTextField tf_input;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Button01 window = new Button01();
                    window.frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the application.
     */
    public Button01() {
        initialize();
    }

    /**
     * Initialize the contents of the frame.
     */
    private void initialize() {
        frame = new JFrame();
        frame.setBounds(100, 100, 450, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);
        
        JLabel lblindowBuilderbutton = new JLabel("Window Builder 圖形化介面測試範例-Button");
        lblindowBuilderbutton.setBounds(56, 12, 324, 15);
        frame.getContentPane().add(lblindowBuilderbutton);
        
        JLabel label = new JLabel("請輸入一段文數字:");
        label.setBounds(12, 39, 117, 15);
        frame.getContentPane().add(label);
        
        JLabel label_1 = new JLabel("您輸入的內容為:");
        label_1.setBounds(12, 70, 107, 15);
        frame.getContentPane().add(label_1);
        
        tf_input = new JTextField();
        tf_input.setBounds(133, 37, 114, 19);
        frame.getContentPane().add(tf_input);
        tf_input.setColumns(10);
        
        final JLabel lb_output = new JLabel("...");
        lb_output.setBounds(131, 70, 70, 15);
        frame.getContentPane().add(lb_output);
        
        JButton btn_ok = new JButton("確定");
        btn_ok.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                lb_output.setText(tf_input.getText());
        }});
        btn_ok.setBounds(100, 129, 117, 25);
        frame.getContentPane().add(btn_ok);
   
        
    }
}

 

上述程式的重點在於「final JLabel lb_output」,也就是在定義lb_output此一物件時,要設定為final,如此才可以在「public void actionPerformed(ActionEvent arg0) {」那一個函數中讀取到 lb_output 那一個物件的名稱。

 

arrow
arrow

    xx3d2ybnf 發表在 痞客邦 留言(0) 人氣()