- ベストアンサー
Jframeの中にJframeを表示させたい
Jframeの中にボタンを作り、ボタンを押すとJInternalFrameではなくJframeを表示させるようにしたいんですが、なかなかできません。 検索したりしてサンプル探したんですが、 Jframeを表示させ、ラベルを貼ったりしたいんですが どなたかお願いします!! public class Browser extends JFrame{ public static void main(String args[]) { Browser frame = new Browser(); frame.setTitle(""); frame.setExtendedState(JFrame.MAXIMIZED_BOTH); frame.setVisible(true); } //ボタン private JButton bt = new JButton("~~"); public Browser() { bt.addActionListener(this); JToolBar tb = new JToolBar(); tb.setFloatable(false); getContentPane().add(tb, BorderLayout.NORTH); JPanel panel2 = new JPanel(); panel2.add(bt); panel2.setLayout(new FlowLayout(FlowLayout.LEFT)); tb.add(panel2); } //↓この辺りの処理の記述で頭が混乱してきました(泣 public class actionPerformed(ActionEvent e){ if(e.getSource() == bt){ Frame FW = new Frame(); FW.setSize(500,400); FW.setVisible(true); } } class Frame extends Frame{ public Frame(){ //コンストラクタの定義 } }
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
自分の勘違いかもしれませんが、無理みたいですよ。 (調べ方、試し方が悪い、もしくは質問内容の認識違いだったらごめんなさい。) 自分が試したのは import javax.swing.JFrame; import java.awt.Label; public class TestFrame extends JFrame { Label label; Label label2; public TestFrame(){ label = new Label("テスト"); getContentPane().add(label); JFrame jf = new JFrame("ほげ"); label2 = new Label("中のJFrame"); jf.getContentPane().add(label2); getContentPane().add(jf); setSize(500,500); setVisible(true); } public static void main(String[] args) { TestFrame tf = new TestFrame(); } } として実行したところ、 java.lang.IllegalArgumentException: adding a window to a container at java.awt.Container.addImpl(Container.java:363) at java.awt.Container.add(Container.java:255) at sample.TestFrame.<init>(TestFrame.java:27) at sample.TestFrame.main(TestFrame.java:33) となりました。 JavaのAPIを見たところ ContainerクラスのaddImplメソッドに -------------------------------------------------- 例外: IllegalArgumentException - index が無効な場合 IllegalArgumentException - コンテナの親をそのコンテナ自体に追加しようとしている場合 IllegalArgumentException - ウィンドウをコンテナに追加しようとしている場合 -------------------------------------------------- とありますので、JFrameはWindowのサブクラスなのでダメです。
その他の回答 (1)
- had4149
- ベストアンサー率18% (9/48)
質問の意図が良くわからないのですが、JOptionPaneとかじゃだめですかね?