一千萬個為什麽

搜索

為什麽Java Swing在不同的系統上表現不同?

我在計算機上寫的一些擺碼在我同事的電腦,電腦和筆記本上表現不同。

我想知道,我能為Swing應用程序做些什麽在每臺計算機上表現相同嗎?

我想確定我在我的計算機中測試過的算法在我的客戶端計算機中的工作方式是否相同。

例如。 焦點JTextField的問題可以在我的筆記本電腦上使用Windows XP,但不是我的collague的計算機與Windows XP,在我的工作計算機與Ubuntu。

OBS。具體的JTextField問題不是這個問題的主題。

最佳答案

Swing應用程序在不同平臺上的問題很常見,它們是由一個簡單的事實引起的,即無論Java提供什麽級別的抽象,它必須在某些時候與底層操作系統的本機組件一起玩。事件雖然Swing只使用窗口(框架)並自己繪制所有東西 - 但是差異非常普遍。

我開發了一個mutliplatform Swing應用程序 - Windows上的用戶報告了Linux用戶沒有的各種問題,反之亦然。可悲的是,這些問題沒有靈丹妙藥 - 廣泛的測試和令人討厭的修復是城裏唯一的遊戲。

在可插拔的外觀和感覺方面,一切都變得異常多變。例如 - 使用金屬或靈氣來調整JSplitPane的速度非常快(正如預期的那樣),但是如果你使用GTK + plaf,一切都會變成地獄。這是一個更嚴重的(性能)問題 - 視覺問題(缺少邊框,組件不適合容器等)沒有盡頭......盡管所有這些Swing仍然是多平臺桌面應用程序的最佳選擇之一。

轉載註明原文: 為什麽Java Swing在不同的系統上表現不同?