|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.awt.GraphicsDevice
public abstract class GraphicsDevice
GraphicsDevice
類別描述可以在特定圖形環境中使用的圖形設備。這些設備包括螢幕和印表機設備。注意,在 GraphicsEnvironment
實例中可以有許多螢幕和許多印表機。每個圖形設備都有一個或多個與之關聯的 GraphicsConfiguration
物件。這些物件指定可以使用 GraphicsDevice
的不同配置。
在多螢幕環境中,GraphicsConfiguration
物件可用於在多螢幕上呈現元件。以下程式碼範例演示了如何在 GraphicsEnvironment
中針對每個螢幕設備的每個 GraphicsConfiguration
創建 JFrame
物件。
GraphicsEnvironment ge = GraphicsEnvironment. getLocalGraphicsEnvironment(); GraphicsDevice[] gs = ge.getScreenDevices(); for (int j = 0; j < gs.length; j++) { GraphicsDevice gd = gs[j]; GraphicsConfiguration[] gc = gd.getConfigurations(); for (int i=0; i < gc.length; i++) { JFrame f = new JFrame(gs[j].getDefaultConfiguration()); Canvas c = new Canvas(gc[i]); Rectangle gcBounds = gc[i].getBounds(); int xoffs = gcBounds.x; int yoffs = gcBounds.y; f.getContentPane().add(c); f.setLocation((i*50)+xoffs, (i*60)+yoffs); f.show(); } }
有關全屏獨佔網要 API 的更多資訊,請參閱 Full-Screen Exclusive Mode API Tutorial。
GraphicsEnvironment
,
GraphicsConfiguration
欄位摘要 | |
---|---|
static int |
TYPE_IMAGE_BUFFER
設備是圖像緩衝區。 |
static int |
TYPE_PRINTER
設備是印表機。 |
static int |
TYPE_RASTER_SCREEN
設備是光柵螢幕。 |
建構子摘要 | |
---|---|
protected |
GraphicsDevice()
這是一個無法直接實例化的抽象類別。 |
方法摘要 | |
---|---|
int |
getAvailableAcceleratedMemory()
此方法返回此設備上加速記憶體中可用的位元組數。 |
GraphicsConfiguration |
getBestConfiguration(GraphicsConfigTemplate gct)
返回通過了 GraphicsConfigTemplate 中定義的標準的可能“最佳”配置。 |
abstract GraphicsConfiguration[] |
getConfigurations()
返回與此 GraphicsDevice 關聯的所有 GraphicsConfiguration 物件。 |
abstract GraphicsConfiguration |
getDefaultConfiguration()
返回與此 GraphicsDevice 關聯的預設 GraphicsConfiguration 。 |
DisplayMode |
getDisplayMode()
返回此 GraphicsDevice 的當前顯示網要。 |
DisplayMode[] |
getDisplayModes()
返回可用於此 GraphicsDevice 的所有顯示網要。 |
Window |
getFullScreenWindow()
如果設備處於全屏網要,則返回表示全屏視窗的 Window 物件。 |
abstract String |
getIDstring()
返回與此 GraphicsDevice 關聯的標識字元串。 |
abstract int |
getType()
返回此 GraphicsDevice 的型別。 |
boolean |
isDisplayChangeSupported()
如果此 GraphicsDevice 支持低層顯示更改,則返回 true 。 |
boolean |
isFullScreenSupported()
如果此 GraphicsDevice 支持全屏獨佔網要,則返回 true 。 |
void |
setDisplayMode(DisplayMode dm)
設置此圖形設備的顯示網要。 |
void |
setFullScreenWindow(Window w)
進入全屏網要,或返回視窗化網要。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
欄位詳細資訊 |
---|
public static final int TYPE_RASTER_SCREEN
public static final int TYPE_PRINTER
public static final int TYPE_IMAGE_BUFFER
建構子詳細資訊 |
---|
protected GraphicsDevice()
GraphicsEnvironment.getScreenDevices()
,
GraphicsEnvironment.getDefaultScreenDevice()
,
GraphicsConfiguration.getDevice()
方法詳細資訊 |
---|
public abstract int getType()
GraphicsDevice
的型別。
GraphicsDevice
的型別,可以是 TYPE_RASTER_SCREEN、TYPE_PRINTER 或 TYPE_IMAGE_BUFFER。TYPE_RASTER_SCREEN
,
TYPE_PRINTER
,
TYPE_IMAGE_BUFFER
public abstract String getIDstring()
GraphicsDevice
關聯的標識字元串。
在 GraphicsEnvironment
中,某個特定程序可能使用多個 GraphicsDevice
。此方法返回一個標識本地 GraphicsEnvironment
中特定 GraphicsDevice
的 String
。儘管沒有設置此 String
的公共方法,但開發人員仍然可以在除錯時使用此 String
。JavaTM Runtime Environment 供應商可以格式化 String
的返回值。要確定如何解釋 String
值,請與 Java Runtime 供應商聯繫。要尋找誰是供應商,可以從程序中使用“java.vendor”調用 System 類別的 getProperty
方法。
GraphicsDevice
標識的 String
。public abstract GraphicsConfiguration[] getConfigurations()
GraphicsDevice
關聯的所有 GraphicsConfiguration
物件。
GraphicsDevice
關聯的 GraphicsConfiguration
物件的陣列。public abstract GraphicsConfiguration getDefaultConfiguration()
GraphicsDevice
關聯的預設 GraphicsConfiguration
。
GraphicsDevice
的預設 GraphicsConfiguration
。public GraphicsConfiguration getBestConfiguration(GraphicsConfigTemplate gct)
GraphicsConfigTemplate
中定義的標準的可能“最佳”配置。
gct
- 用於獲取有效 GraphicsConfiguration
的 GraphicsConfigTemplate
物件
GraphicsConfigTemplate
中定義的標準的 GraphicsConfiguration
。GraphicsConfigTemplate
public boolean isFullScreenSupported()
GraphicsDevice
支持全屏獨佔網要,則返回 true
。如果安裝了 SecurityManager,則將使用 AWTPermission("fullScreenExclusive")
調用它的 checkPermission
方法。只有授權時 isFullScreenSupported
才會返回 true。
AWTPermission
public void setFullScreenWindow(Window w)
isFullScreenSupported
返回 true
時,獨佔網要才可用。
獨佔網要意味著:
Component.enableInputMethods(false)
,使元件成為非客戶端的輸入方法框架。
模擬的全屏網要將視窗大小調整為螢幕大小,並將它置於 (0,0)。
當進入全屏網要時,如果看不到作為全屏視窗使用的視窗,此方法將會使其可見。當返回到視窗化網要時,視窗仍將保持可見。
當從獨佔全屏視窗網要返回到視窗化網要時,任何調用 setDisplayMode
做出的顯示更改都將自動恢復原狀。
w
- 一個用作全屏視窗的視窗;如果返回到視窗化網要,則為 null
。一些平臺希望全屏視窗成為頂層元件(即 Frame);因此這裡最好使用 Frame,而不用 Window。isFullScreenSupported()
,
getFullScreenWindow()
,
setDisplayMode(java.awt.DisplayMode)
,
Component.enableInputMethods(boolean)
,
Component.setVisible(boolean)
public Window getFullScreenWindow()
Window
物件。
null
。setFullScreenWindow(Window)
public boolean isDisplayChangeSupported()
GraphicsDevice
支持低層顯示更改,則返回 true
。某些平臺可能只在全屏獨佔網要中允許低層顯示更改(即如果 isFullScreenSupported()
返回 true
,且應用程序已經使用 setFullScreenWindow(java.awt.Window)
進入全屏網要)。
setDisplayMode(java.awt.DisplayMode)
public void setDisplayMode(DisplayMode dm)
isDisplayChangeSupported()
返回 true
時才允許此方法,假如支持全屏獨佔網要的話(即 isFullScreenSupported()
返回 true
),還可能要求首先使用 setFullScreenWindow(java.awt.Window)
進入全屏獨佔網要。
該顯示網要必須是由 getDisplayModes()
返回的顯示網要之一,只有一種情況例外:傳遞帶有 DisplayMode.REFRESH_RATE_UNKNOWN
刷新率的顯示網要時,將從帶有比對寬度、高度和位深的可用顯示網要列表中選擇一個顯示網要。但是,只有在位深為 DisplayMode.BIT_DEPTH_MULTI
的顯示網要存在於 getDisplayModes()
返回的列表中時,才能傳遞這種顯示網要。
程式碼範例:
Frame frame;
DisplayMode newDisplayMode;
GraphicsDevice gd;
// create a Frame, select desired DisplayMode from the list of modes
// returned by gd.getDisplayModes() ...
if (gd.isFullScreenSupported()) {
gd.setFullScreenWindow(frame);
} else {
// proceed in non-full-screen mode
frame.setSize(...);
frame.setLocation(...);
frame.setVisible(true);
}
if (gd.isDisplayChangeSupported()) {
gd.setDisplayMode(newDisplayMode);
}
dm
- 此圖形設備的新顯示網要。
IllegalArgumentException
- 如果提供的 DisplayMode
為 null
,或者在 getDisplayModes
返回的陣列中不可用
UnsupportedOperationException
- 如果 isDisplayChangeSupported
返回 false
getDisplayMode()
,
getDisplayModes()
,
isDisplayChangeSupported()
public DisplayMode getDisplayMode()
GraphicsDevice
的當前顯示網要。如果返回的顯示網要是不確定的,則允許它具有 DisplayMode.REFRESH_RATE_UNKNOWN
刷新率。同樣,如果返回的顯示網要是不確定的或者支持多個位深,則允許它具有 DisplayMode.BIT_DEPTH_MULTI
位深。
setDisplayMode(DisplayMode)
public DisplayMode[] getDisplayModes()
GraphicsDevice
的所有顯示網要。如果返回的顯示網要是不確定的,則允許它具有 DisplayMode.REFRESH_RATE_UNKNOWN
刷新率。同樣,如果返回的顯示網要是不確定的或者支持多個位深,則允許它具有 DisplayMode.BIT_DEPTH_MULTI
位深。
public int getAvailableAcceleratedMemory()
ImageCapabilities
物件,還有更多的查詢方法,可用於確定是否在加速記憶體中創建一個特殊的 VolatileImage。
Image.flush()
,
ImageCapabilities.isAccelerated()
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。