如何在Java中使窗口看起来像这样?

时间:2011-02-22 07:24:47

标签: java swing look-and-feel

如何在Java中创建一个如下所示的窗口:

frame

我想要那个窗口布局,而不是标准的Windows边框,我不知道如何调用它。

编辑:外观对我来说不起作用:

not working for me

5 个答案:

答案 0 :(得分:10)

如果你想让你的外观画出窗户装饰(这就是所谓的“边框”),那么你需要在创建{{1}之前调用JFrame.setDefaultLookAndFeelDecorated(true) 创建JFrame对象之前,对象和JDialog.setDefaultLookAndFeelDecorated(true)

答案 1 :(得分:3)

这就是所谓的外观,你可以在这里找到详细的解释http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html

答案 2 :(得分:2)

您需要首先设置外观并使用跨平台的外观(如有人在称之为金属之前评论过)。然后在创建框架之前,您需要请求边框是由外观绘制的。

try
{
    UIManager.setLookAndFeel(
        UIManager.getCrossPlatformLookAndFeelClassName());
}
catch (Exception e) { }

这会将外观设置为您想要的外观。由于跨平台的外观和感觉是Sun的JRE中的金属。

// Get window decorations drawn by the look and feel.
JFrame.setDefaultLookAndFeelDecorated(true);

// Create the JFrame.
JFrame frame = new JFrame("A window");

这将使创建的JFrame具有您描述的边界。

答案 3 :(得分:0)

为主要方法中的代码设置窗口外观和感觉。

public static void main(String args []){
        试试{

         for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
            if ("windows".equalsIgnoreCase(info.getName())) {
                javax.swing.UIManager.setLookAndFeel(info.getClassName());
                break;
            }
        }

    } catch (Exception ex) {
         System.out.println(e);
    } 


    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            MainFrame mainFrame = new MainFrame();
            mainFrame.setExtendedState(MAXIMIZED_BOTH);
            mainFrame.setVisible(true);

            InitDatabaseDialog initDatabaseDialog = new InitDatabaseDialog(mainFrame, true);
            initDatabaseDialog.setVisible(true); 
        }
    });
}

答案 4 :(得分:0)

将此添加到main()方法:

try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Windows".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(testjframe.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(testjframe.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(testjframe.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(testjframe.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }