|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
java.lang.Objectjava.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_BUFFERpublic 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。GraphicsConfigTemplatepublic boolean isFullScreenSupported()
GraphicsDevice 支持全屏獨佔網要,則返回 true。如果安裝了 SecurityManager,則將使用 AWTPermission("fullScreenExclusive") 調用它的 checkPermission 方法。只有授權時 isFullScreenSupported 才會返回 true。
AWTPermissionpublic 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 返回 falsegetDisplayMode(),
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。