2

在 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);
    }
}
4

3 回答 3

4

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

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

或者您想要使用的外观和感觉的任何类,而不是示例中显示的基本 Java 外观。请参阅此处了解更多信息。

于 2012-09-06T00:32:30.060 回答
2

..找不到方法。

方法很像getPonyRide()。如果我们编写了未在类或它扩展的任何类中定义的方法,编译器将告知它们不存在。

如果您键入类似的内容,IDE 通常会显示一个下拉菜单。

instanceOfObject.

..或者..

this.

.输入的那一刻(或稍后,取决于开发框的速度),应该出现一个可能的方法和属性的列表。在选择一种之前,请仔细查看各种可能性。

建议

  1. 不要扩展框架,只需引用一个。更喜欢组合而不是继承
  2. 不要调用setSize(),而是pack()在添加所有组件后调用。
  3. 用于JFrame.DISPOSE_ON_CLOSE退出操作。
于 2012-09-06T02:15:34.417 回答
0

看起来您正在阅读《Sams 在 24 小时内自学 Java,第 6 版?

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

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();
    }
}
于 2014-10-20T11:33:59.557 回答