🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

解決済

2回答

5535閲覧

EclipseのJPanelで複数のパネルを操作するにはどうすればよいですか?

Nayuta_Ito

総合スコア12

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2017/12/29 01:07

Eclipseで、「パネル内のボタンを押すと別のパネルが開く」というプログラムを作っているのですが、ボタンを押した後に開くパネル内のコンポーネントの配置を(最初に開くパネルのように)デザインタブで編集する方法はありますか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

Window Builderを使っていると仮定して回答します。

ファイル→新規→その他→JPanelで新しいパネルを追加して、デザインをクリックして画面を編集すればよい話だと思うのですが、
それとも一つのJPanel内に複数の子JPanelを定義したいという話なのでしょうか?
その場合でも、一番親をCardLayoutにして、子のJPanelを追加すれば、デザインで変更できますが。
画面1
画面2

以下はソースコードです。
Q106911.java

Java

1import javax.swing.JFrame; 2import javax.swing.SwingUtilities; 3 4public class Q106911 extends JFrame { 5 /** 6 * 7 */ 8 private static final long serialVersionUID = 1L; 9 public Q106911(){ 10 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 11 this.setSize(600, 480); 12 this.getContentPane().add(new MainPanel()); 13 } 14 public static void main(String[] args) { 15 SwingUtilities.invokeLater(() -> new Q106911().setVisible(true)); 16 } 17}

MainPanel.java

Java

1import javax.swing.JPanel; 2import java.awt.CardLayout; 3import javax.swing.JButton; 4import java.awt.event.ActionListener; 5import java.awt.event.ActionEvent; 6import javax.swing.JLabel; 7 8public class MainPanel extends JPanel { 9 /** 10 * 11 */ 12 private static final long serialVersionUID = 1L; 13 14 /** 15 * Create the panel. 16 */ 17 public MainPanel() { 18 setLayout(new CardLayout(0, 0)); 19 JPanel first = new JPanel(); 20 add(first, "name_23628913398839"); 21 22 JButton btnNewButton = new JButton("次画面へ"); 23 btnNewButton.setBounds(48, 116, 101, 25); 24 btnNewButton.addActionListener(new ActionListener() { 25 public void actionPerformed(ActionEvent arg0) { 26 showPanel("name_23656904932933"); 27 } 28 }); 29 first.setLayout(null); 30 first.add(btnNewButton); 31 32 JLabel lblNewLabel = new JLabel("画面1"); 33 lblNewLabel.setBounds(12, 13, 327, 66); 34 first.add(lblNewLabel); 35 36 JPanel second = new JPanel(); 37 add(second, "name_23656904932933"); 38 second.setLayout(null); 39 40 JLabel label = new JLabel("画面2"); 41 label.setBounds(28, 39, 57, 16); 42 second.add(label); 43 44 JButton btnNewButton_1 = new JButton("前画面へ"); 45 btnNewButton_1.addActionListener(new ActionListener() { 46 public void actionPerformed(ActionEvent arg0) { 47 showPanel("name_23628913398839"); 48 } 49 }); 50 btnNewButton_1.setBounds(39, 101, 101, 25); 51 second.add(btnNewButton_1); 52 } 53 public void showPanel(String name){ 54 CardLayout card = (CardLayout)getLayout(); 55 card.show(this, name); 56 } 57}

投稿2017/12/29 16:26

編集2017/12/29 16:33
umyu

総合スコア5846

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Nayuta_Ito

2017/12/29 23:13

成功しました。ありがとうございます。
guest

0

正しい方法かどうかは自信ありませんが、一つの方法として見てください。

ボタンを押したときのアクション

public void actionPerformed(java.awt.event.ActionEvent e) { nextPanel nextpanel = new nextPanel(); nextpanel.setVisible(true); }

別のパネルのほうは、

public nextPanel() { super(); initialize(); } private void initialize() { this.setBounds(100, 100, 700, 500); this.setContentPane(getJContentPane()); this.setTitle("nextPanel"); }

これで、別のパネルが開きます。
位置の調整はthis.setBounds(100, 100, 700, 500)でできると思います。

投稿2017/12/29 09:35

senior_golfer

総合スコア267

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Nayuta_Ito

2017/12/29 09:42

このときにデザインタブからnextPanelのレイアウトを操作することはできますか?
senior_golfer

2017/12/29 10:00

nextPanelにあるLabelなどの位置を変えるということですか。
senior_golfer

2017/12/29 10:25

意味が分かました。 残念ながら、私のスキルでは難しいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問