質問編集履歴

1 文章追加

maikel

maikel score 37

2018/08/14 20:08  投稿

文字やボタンの配置を変更したい
文字やボタンの配置を変更したいです。
CardLayoutを使っていて、配置の変更自体は現在BorderLayoutに任せています。
ただ、エラーは出てないのですが、配置の変更が読み込めてません。カードレイアウトにaddした瞬間、BorderLayoutが無効になっているのではないかと考えています。こういう時、どう配置を変更するべきなのでしょうか。ご教授願えないでしょうか。
[現在の状態](https://gyazo.com/7e8c85c2108f851d56722064559d7f81)
現在、BorderLayoutによって、ボタンをセンターに位置を指定していますが、  
ボタンが右に来てますよね。  
配置の変更が読み込めていません。  
 
解決法を教えてほしいです。  
 
こちらが問題のコードです。  
```java
package app;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class SecondPanel extends JFrame implements ActionListener {
   JPanel panel;
   CardLayout layer;
   public static void main(String args[]) {
       SecondPanel frame = new SecondPanel();
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       frame.setBounds(100, 20, 1000, 700);
       frame.setTitle("直観力トレーニング");
       frame.setVisible(true);
   }
   SecondPanel() {
       // scene1
       JPanel scene1 = new JPanel();
       JPanel titlesPanel = new JPanel();
       JLabel title = new JLabel("直観力テスト");
       title.setFont(new Font(Font.SERIF, Font.BOLD, 50));
       titlesPanel.setPreferredSize(new Dimension(500, 100));
       titlesPanel.add(title,BorderLayout.PAGE_START);
       scene1.add(titlesPanel);
       JButton jb = new JButton("直観力テストスタート");
       jb.setPreferredSize(new Dimension(200, 50));
       JPanel buttonsPanel = new JPanel();
       buttonsPanel.add(jb);
       scene1.add(buttonsPanel,BorderLayout.PAGE_END);
       // scene2
       JPanel scene2 = new JPanel();
       scene2.setBackground(Color.BLUE);
       // matomeru
       this.panel = new JPanel();
       this.layer = new CardLayout();
       this.panel.setLayout(this.layer);
       this.panel.add(scene1, "menue");
       this.panel.add(scene2, "view");
       // ボタン用のパネル
       jb.addActionListener(this);
       jb.setActionCommand("view");
       // カードレイアウトに追加
       getContentPane().add(this.panel);
   }
   public void actionPerformed(ActionEvent e) {
       String cmd = e.getActionCommand();
       layer.show(this.panel, cmd);
   }
}
```問題のコードです。
```
  • Java

    20147 questions

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

  • Eclipse

    2472 questions

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

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る