2011-05-11 63 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