2011-05-11 77 views
3

我想知道哪一行代碼它真的真的還是有更好的方法? 任何人都可以幫助我嗎?JFrame到窗口類

JFrame jframe=new JFrame() 
Window window; 
jframe.setUndecorated(true); 


window=(Window)jframe; //is this line true? 

謝謝。

+1

當你嘗試它時,你會得到什麼結果?順便說一句 - 一個「更好的方式」做什麼? – 2011-05-11 08:08:07

+0

@Andrew我使用AWTUtilites庫,setWindowOpacity方法工作正常,但setWindowShape不起作用。 – mehdi 2011-05-11 08:12:09

+0

我寫了這個作業,實際上是這樣的 window = jframe; 並沒有任何問題。但你想做什麼?在使用Swing時,通常使用Swing組件。你爲什麼需要Window? – 2011-05-11 08:13:33

回答

2

是的,這是真的,但你不需要演員。 java.swing.JFrame是java.awt.Window的子類,所以沒關係。我無法找到爲什麼應用於您的Window變量的方法不適用於JFrame變量的原因。它不應該發生,因爲Java只使用後期綁定來進行方法調用。

試着檢查你的代碼,檢查你是否導入了正確的類,因爲我認爲你誤解了某些東西。

+1

我正在使用AWTUtilities庫,方法setWindowOpacity(窗口窗口,浮動不透明)是工作正常,但setWindowShape(窗口,Sahpe)不起作用 – mehdi 2011-05-11 08:27:17

+1

好吧抱歉,我明白你現在做什麼。那麼答案是:是的,這條線是正確的。如果該方法不起作用,可能是因爲您的系統不支持此功能。在另一臺機器上試用你的代碼呢?下一次,請在您的問題中寫下例外文本,因爲很難理解您的意思。乾杯。 – Joel 2011-05-11 08:36:30

+0

好的喬爾,謝謝你,我檢查一下。是的,我的問題並不完整,對不起。 – mehdi 2011-05-11 08:42:30

2

如果您使用的是JFrame,我的建議是您嘗試這樣的事情。

public static void main(String[] args) { 
    javax.swing.SwingUtilities.invokeLater(new Runnable() { 
     @Override 
     public void run() { 
     try { 
      createAndShowGUI(); 
     } catch (UnsupportedLookAndFeelException e) { 
      e.printStackTrace(); 
     } 
     } 
    }); 
    } 

然後,創建的JFrame結構:調用createAndShowGUI()第一主方法

static void createAndShowGUI() throws UnsupportedLookAndFeelException { 
    // Creates the window (JFrame) 
    frame = new JFrame("Name of the window");//          
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

    // Create and set up the content pane. 
    new Interface(); 
    frame.pack(); 
    frame.setSize(700, 400); 
    frame.setLocationRelativeTo(null);// centers the window in the screen 
    frame.setVisible(true); 
    } 

接口()是我創建的類的構造函數,使用幀作爲主窗口中,和在其中添加了JPanels,但您可以通過其他方式來完成。

我想你想要的是展示一個窗口,不是嗎?不清楚的是如果你想使用Swing組件。

+1

是的,你的代碼工作。我需要傳遞給方法setWindowShape(Window,Sahpe)一個Window類,這種方法不起作用,但方法setWindowOpacity(窗口,浮動)工作時,我使用形式這行代碼w =(窗口)JFrame。 w是一個窗口 – mehdi 2011-05-11 08:35:16