Java 7u7 setLookAndFeel不起作用?

时间:2012-09-06 00:22:13

标签: java swing netbeans compiler-errors

在Netbeans 7.2中,当我输入setLookAndFeel();时,它表示找不到该方法。我做错了什么?

import javax.swing.*;

public class SalutonFrame extends JFrame  {

    public SalutonFrame() throws UnsupportedLookAndFeelException {
        super("Saluton Mondo!");

        setLookAndFeel();

        setSize(350, 100);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

3 个答案:

答案 0 :(得分:4)

要设置框架的外观,必须在构造函数之前通过UIManager执行此操作。你可以这样做:

    UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
    JFrame someFrame = new JFrame();

或者您要使用的外观和类似的任何类,而不是示例中显示的基本Java外观。有关详细信息,请参阅here

答案 1 :(得分:2)

  

..找不到方法。

与方法getPonyRide()非常相似。如果我们组成未在类或其扩展的任何类中定义的方法,编译器将建议它们不存在。

如果您键入类似的内容,

IDE通常会显示一个下拉菜单。

instanceOfObject.

.. ..或

this.

在输入.时(或稍后,根据开发框的速度),应显示可能的方法和属性列表。在选择之前仔细查看可能性。

推荐

  1. 不要延伸框架,只需引用框架。首选composition over inheritance
  2. 请勿在{{1​​}}之后致电setSize(),而是在添加所有组件后致电pack()
  3. 使用JFrame.DISPOSE_ON_CLOSE进行退出操作。

答案 2 :(得分:0)

看起来你正在阅读这本书" Sams在24小时,第6版自学Java?

无论如何,你可以这样做:

import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;

public class SalutonFrame extends JFrame {

    public SalutonFrame() throws UnsupportedLookAndFeelException {
        super("Saluton Mondo!");

        try {
            UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
            JFrame someFrame = new JFrame();

            setSize(350, 100);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        } 

        catch (Exception exc) {
            //  error handling
        }
    }
}

或者你可以这样做:

import javax.swing.*;

public class SalutonFrame extends JFrame {

    public SalutonFrame() {

        super("Saluton Frame");
        setLookAndFeel();
        setSize(350, 100);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }

    private void setLookAndFeel() {

        try {        

            UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());

        } catch (Exception exc) {
            //  error handling
        }
    }

    public static void main(String[] args) {
        SalutonFrame sal = new SalutonFrame();
    }
}