首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Visual J++ 6.0 實戰手冊:從安裝到 Application/Applet 完整開發調試流程

     編輯:Java 相關知識

前言:微軟的 Java 實驗與遺產

Visual J++ 6.0 (VJ6) 是微軟在 Java 戰略上的關鍵產物:將 Java 語言塞入 Visual Studio 體系,捆綁 WFC (Windows Foundation Classes) 直通 Win32 API,提供 VB 風格的 RAD 體驗。雖因違反 Java 兼容性規範敗訴 Sun、隨後被 C#/.NET 取代,但其調試器優秀、介面熟悉、智能感知超前的特點,曾讓無數 Windows 開發者輕鬆入門 Java。本文整理 VJ6 完整使用流程,供維護舊專案或考古研究者參考。

一、獲取與安裝

  • 授權:商業軟體,官方提供 90 天試用版 (需重裝);MSDN 訂閱者可獲正式版。
  • 安裝建議:初學者選「典型安裝」;有 VB/VC 經驗可「自定義」勾選 WFC、資料庫工具、原生編譯器。
  • 數位簽名提示:安裝末尾可能彈出簽名確認,選「否」不影響使用。

二、IDE 界面速覽

主選單欄

  • 檔案:標準文件操作 (新建/開啟/儲存/列印)。
  • 編輯:剪貼簿、尋找/取代、書籤、縮排/取消縮排。
  • 檢視:工具列、狀態列、輸出視窗、任務清單、工具箱、屬性視窗、專案瀏覽器切換。
  • 專案:加入項目 (類/表單/網頁/現有文件) —— 核心擴充專案入口。
  • 建置:編譯/重建/清理解決方案。
  • 偵錯:啟動/中斷/單步/呼叫堆疊/監視視窗 —— VJ6 最強項。
  • 工具/視窗/說明:選項設定、視窗佈局、線上文檔。

工具列與浮動視窗

  • 工具列可右鍵自訂,常用:新建、儲存、剪貼、建置、啟動 (播放圖示)。
  • 四大浮動面板:專案瀏覽器 (樹狀管理)、屬性視窗 (上下文敏感)、工具箱 (拖放控件)、任務/輸出 (編譯錯誤/運行日誌)。面板可拖曳合併/分離。

原始碼編輯器

  • 語法著色:綠色註解、藍色關鍵字、黑色可執行語句。
  • 自動縮排/大括號對齊:工具 → 選項 → 文字編輯器 → Java 格式 客製化。
  • 智能感知 (自動補全):輸入 System. 彈出成員列表,輸入 o 定位 out,空格確認;out. 再列出 println 等,帶參數簽名提示 (1 of 10)。啟用:工具 → 選項 → 文字編輯器 → 每種語言 → 自動列出成員。
  • 錯誤即時標記:任務清單紅色波浪線 (錯誤)、藍色 (警告)。

三、關鍵抉擇:WFC 與跨平台的博弈

WFC (Windows Foundation Classes) 封裝 Win32 API,提供 com.ms.wfc.* 套件,實現 VB 風格拖放表單開發。

  • 優勢:開發 Windows 原生 GUI 極快、直通 GDI/COM/ADO、適合單平台內部工具。
  • 代價:徹底失去跨平台性,編譯產物只能在微軟 JVM 運行。Sun 訴訟勝訴後,VJ6 新建 WFC 專案會強制彈出警告。
  • 識別方法:源碼頂部出現 import com.ms.wfc.app.*; 即使用 WFC。
  • 建議:新專案堅決避免 WFC,改用標準 AWT/Swing/SWT/JavaFX;維舊專案隔離 WFC 模組,逐步重寫。

四、Console Application 開發全流程 (純 Java、無 GUI、跨平台)

// 1. 新建專案:檔案 → 新建專案 → Visual J++ Projects → Console Application
// 2. VJ6 自動生成骨架
public class Class1 {
    public static void main(String[] args) {
        // TODO: 在此加入初始化代碼
    }
}

// 3. 撰寫代碼 (體驗智能感知)
System.out.println("Hello!");  // 輸入 Sys[.]o[ ]p[.]p[.]ln("Hello!")

// 4. 建置/執行
// 工具列「播放」圖示 = 自動建置 + 執行
// 或 偵錯 → 啟動 (F5)
// 彈出 DOS 視窗輸出:Hello!

五、Windows Application (WFC) 開發範例:文本複製器

目標:兩個編輯框 + 一按鈕,點擊按鈕將 Edit1 內容複製到 Edit2 (禁用編輯)。

  1. 新建 Windows Application 專案 → 自動生成 Form1 設計介面。
  2. 從工具箱拖放兩個 Edit 控件 (自動命名 edit1, edit2) 與一個 Button (button1)。
  3. 選中 edit2,屬性視窗將 Enabled 設為 False。
  4. 雙擊 button1 進入事件處理器:
private void button1_click(Object source, Event e) {
    edit2.setText(edit1.getText());
}
  1. F5 運行,測試複製功能。

完整生成代碼結構 (節選):

import com.ms.wfc.app.*;
import com.ms.wfc.core.*;
import com.ms.wfc.ui.*;
import com.ms.wfc.html.*;

public class Form1 extends Form {
    // 控件宣告
    Container components = new Container();
    Edit edit1 = new Edit();
    Edit edit2 = new Edit();
    Button button1 = new Button();

    public Form1() { initForm(); }  // 設計器生成初始化

    private void initForm() {
        // 佈局座標、大小、TabIndex、事件綁定
        button1.addOnClick(new EventHandler(this.button1_click));
        this.setNewControls(new Control[] { button1, edit2, edit1 });
    }

    private void button1_click(Object source, Event e) {
        edit2.setText(edit1.getText());
    }

    public static void main(String args[]) {
        Application.run(new Form1());
    }
}

六、純 AWT/Swing GUI 開發 (無 WFC、跨平台)

VJ6 無視覺化設計器支援標準 AWT/Swing,需手寫代碼:

  1. 新建 Empty Project (Visual J++ Projects → Empty Project)。
  2. 專案 → 加入項目 → 選擇「類」或「表單」建立源文件。
  3. 手寫 Frame/JFrame、Panel/JPanel、佈局管理器、事件監聽器代碼。
  4. 編譯運行同 Console Application。

提示:多文件專案必須掌握「加入項目」流程,否則無法管理依賴。

七、Applet 開發完整流程:跑馬燈範例

  1. 新建:檔案 → 新建專案 → Applet on HTML → 生成 Applet1.java + Page1.html。
  2. HTML 設計器:雙擊 Page1.html 進入所見即所得編輯,右鍵 Applet 區域選「Always View as Text」查看/編輯標籤:
<applet code=Applet1.class name=movetext width=400 height=100 VIEWASTEXT>
  <param name=string value="你好,這是一個例子!">
  <param name=font value="新細明體">
  <param name=style value=BOLD>
  <param name=size value=40>
  <param name=speed value=20>
</applet>
  1. Java 代碼:雙擊 Applet1.java,在 init() 讀取參數,paint() 繪製,start()/run()/stop() 管理執行緒滾動 (實現 Runnable)。關鍵片段:
public class Applet1 extends Applet implements Runnable {
    Font ft; String theString; int size, speed, xSet, Max, Min;

    public void init() {
        theString = getParameter("string");
        // ... 讀取 font, size, speed 參數 ...
        ft = new Font(font, vice_style, size);
        FontMetrics fm = getFontMetrics(ft);
        Min = -fm.stringWidth(theString);
        Max = getSize().width;
        xSet = Max;
    }

    public void paint(Graphics g) {
        g.setFont(ft); g.setColor(Color.red);
        g.drawString(theString, xSet, getSize().height/2);
    }

    public void run() {
        while (true) {
            try { repaint(); Thread.sleep(speed); }
            catch (InterruptedException e) {}
        }
    }
    // start()/stop() 管理執行緒生命週期...
}
  1. 編譯運行:F5 自動編譯並用預設瀏覽器開啟 HTML,觀看跑馬燈效果。

八、調試技巧精華

  • 中斷點:編輯器左側灰帶點擊 (紅點) 或 F9 切換。
  • 單步執行:F10 (逐過)、F11 (進入)、Shift+F11 (跳出)。
  • 監視視窗:偵錯 → 監視 → 加入變量/運算式,即時觀察值變化。
  • 呼叫堆疊:偵錯 → 視窗 → 呼叫堆疊,追蹤方法調用鏈。
  • 即時運算視窗:偵錯中輸入運算式求值、修改變量值。
  • 異常中斷:偵錯 → 例外狀況 → 勾選「即時中斷」,捕捉未處理異常。

九、遺產與啟示

VJ6 以「熟悉的 VS 介面 + 極強調試 + WFC RAD」降低了 Windows 開發者進入 Java 的門檻,但綁定專有類庫、背離標準、缺乏跨平台註定其成為過渡產物。今日回顧:

  • 調試器設計 影響了後續 VS/.NET 調試體驗,也倒逼 Eclipse/IntelliJ 持續增強調試功能。
  • 智能感知 確立了現代 IDE 代碼補全的交互標準。
  • WFC 失敗 警示:語言標準化與平台抽象是生態生存的生命線,C# 正是吸取此教訓、擁抱標準 (ECMA CLI) 才贏得跨平台生態。

維護 VJ6 專案時,建議:隔離 WFC 代碼、逐模組遷移至標準 Java/Swing/SWT、引入 Maven/Gradle 建構、切換至 IntelliJ/Eclipse 開發,勿在新專案投入 WFC 技術債。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved