1

次のコードをご覧ください

Form.java

import java.awt.event.*;
import java.awt.*;
import javax.swing.*;

public class Form extends JFrame
{
    private JButton[]buttonHolder;

    public Form()
    {
        //Intializing instance variables
        buttonHolder = new JButton[9];

        this.add(createCenterPanel());
        this.setSize(300,300);
        this.setVisible(true);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    private JPanel createCenterPanel()
    {
        JPanel centerPanel = new JPanel();
        centerPanel.setLayout(new GridLayout(3,3,0,0));

        for(int i=0;i<9;i++)
        {
            buttonHolder[i] = new JButton();
            centerPanel.add(buttonHolder[i]);
        }

        return centerPanel;
    }
}

Main.java

import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import napkin.NapkinLookAndFeel;

public class Main
{
    public static void main(String[]args)
    {
        try
        {
            Form f = new Form();
            UIManager.setLookAndFeel(new NapkinLookAndFeel());
        }
        catch(Exception e)
        {

        }
    }
}

ここではナプキンのルックアンドフィールを使用していますが、エラーが発生しますkeys we didn't overwrite: []。どうしてこれなの?GUIが表示されません。助けてください。

4

2 に答える 2

3

これは役立つかもしれません

あなたが試すことができる1つのことは次のとおりです。

  • ルックアンドフィールはまだ設定しないでください。
  • ユーザー インターフェイスを作成します。
  • フレームで setUndecorated(true) を呼び出します。
  • ルックアンドフィールを設定します。
  • フレームの SwingUtilities.updateComponentTreeUI を呼び出します。
  • 必要に応じて、フレームで setUndecorated(false) を呼び出します。

から

http://www.coderanch.com/t/566070/GUI/java/Error-NapKin-Feel

編集:

「keys we did not overwrite: []」というメッセージがここに出力されます。

@Override
protected void initClassDefaults(UIDefaults table) {
    super.initClassDefaults(table);
    String cName = NapkinLookAndFeel.class.getName();
    String basicPackageName = cName.replace("NapkinLookAndFeel", "Napkin");
    for (String uiType : UI_TYPES) {
        String uiClass = basicPackageName + uiType;
        table.put(uiType, uiClass);
    }

    Set<Object> keys = new HashSet<Object>(table.keySet());
    keys.removeAll(Arrays.asList(UI_TYPES));
    if (keys.size() != 0) {
        System.out.println("keys we didn't overwrite: " + keys);
    }
}

http://www.jarvana.com/jarvana/view/net/sf/squirrel-sql/thirdparty-non-maven/napkinlaf/1.2/napkinlaf-1.2-sources.jar!/net/sourceforge/napkinlaf/NapkinLookAndFeel.java ?フォーマット=OK

于 2013-03-12T17:36:00.880 に答える
0

のインスタンスを作成する前に、最初にルック アンド フィールを設定しますForm

public static void main(String[]args)
{
    try
    {
        UIManager.setLookAndFeel(new NapkinLookAndFeel());
        Form f = new Form();
    }
    catch(Exception e)
    {
        // it's generally a bad idea to silently swallow exceptions,
        // you should at least do...
        e.printStackTrace();
    }
}
于 2013-03-12T19:31:47.523 に答える