1
public class POSToolBar extends JFrame {

/**
 * Launch the application.
 */
private BrowserToolBar toolBar;

public POSToolBar() {
    super("POS");
    Container content = getContentPane();
    content.setBackground(Color.white);
    toolBar = new BrowserToolBar();
    content.add(toolBar, BorderLayout.NORTH);
    pack();
    setVisible(true);
}
}

上記のコードは私のためにツールバーを生成します。ここで、このツールバーを1つおきのスイングページで使用したいと思います。このクラスを継承/拡張してframe.add(new POSToolbar())を使用しますが、例外が表示されます'java.lang.IllegalArgumentException:コンテナにウィンドウを追加する'他のスイングページにこのツールバーを追加するにはどうすればよいですか?

4

1 に答える 1

2

他のクラスで使用する場合は、JFrameではなくJToolBarを拡張する必要があります。

import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.*;

public class TestApplication extends JFrame {
    public static void main(String [] a){
        TestApplication ta = new TestApplication();
        TBar t = new TBar();
        ta.setLayout(new BorderLayout());
        ta.add(t,BorderLayout.NORTH);
        ta.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        ta.setPreferredSize(new Dimension(400,300));
        ta.pack();
        ta.setVisible(true);
    }
}

class TBar extends JToolBar{
    JButton b = new JButton("Hello");

    public TBar(){
        add(b);
    }
}
于 2012-09-08T11:52:37.763 に答える