質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.50%
JFrame

JFrameはJFC/Swingフレームワークのコンポーネントであり、トップレベルのコンテナです。

Java

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

デザイン

プログラミングでのデザインとは、プログラムの構成や、使用の信頼性・持続性・正確性・利便性の目標達成にはどうするのがベストなのか特定の選択を行うことです。

Sublime Text

SublimeTextとは、オーストラリアのSublime HQ Pty Ltdが提供しているテキストエディターのことです。Mac/Windows/Linuxでの利用が可能で、柔軟にカスタマイズできたり、多くの言語に対応していくこともあり、海外や日本国内でも人気のあるエディターです。

Q&A

解決済

1回答

3588閲覧

javaのGUIでスクロールバーがでない

usagityan

総合スコア30

JFrame

JFrameはJFC/Swingフレームワークのコンポーネントであり、トップレベルのコンテナです。

Java

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

デザイン

プログラミングでのデザインとは、プログラムの構成や、使用の信頼性・持続性・正確性・利便性の目標達成にはどうするのがベストなのか特定の選択を行うことです。

Sublime Text

SublimeTextとは、オーストラリアのSublime HQ Pty Ltdが提供しているテキストエディターのことです。Mac/Windows/Linuxでの利用が可能で、柔軟にカスタマイズできたり、多くの言語に対応していくこともあり、海外や日本国内でも人気のあるエディターです。

0グッド

0クリップ

投稿2016/12/14 05:22

編集2016/12/14 05:39

どうがんばってもスクロールバーがでません
しかも警告がでる、なんででしょう
泣いています
たすけてください
女子大生です
泣いています

###該当のソースコード

import java.io.;
import java.lang.
;
import javax.swing.;
import java.awt.
; //レイアウトマネージャに必要なパッケージ

public class ColorChoice extends JFrame {

//colorList
JList colorList;
JScrollPane scroll;

//JPanel
JPanel colorBar = new JPanel();

public ColorChoice() {

//colorBar String[] colors = new String[]{"red","blue","green","yellow","pink","white","black","brown","purple","violet"}; colorList = new JList(colors); colorBar.setLayout(new BorderLayout()); colorBar.add(colorList, BorderLayout.CENTER); scroll = new JScrollPane(colorList); colorBar.add(scroll); getContentPane().setLayout(new BorderLayout()); getContentPane().add((他オブジェクト), BorderLayout.NORTH); getContentPane().add(colorList, BorderLayout.CENTER); getContentPane().add((他オブジェクト), BorderLayout.SOUTH); setTitle("ブラウザ"); setSize(400,300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true);

}

public static void main(String[] args) {
new ColorChoice();
}

}

###試したこと
最初はcolorBar(JPanel)を入れてなかったのですが、
colorList.add(scroll)でスクロールバーがでなかったのでJPanelに貼り付けたけどだめだった

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

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

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

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

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

KSwordOfHaste

2016/12/14 05:56

「泣いています たすけてください 女子大生です」ここに質問しているわけですから困っていることは分かっています。余分な言葉は無駄なので省きましょう。関係の有無を区別して論理的に思考する。それがプログラマーの心得です。
usagityan

2016/12/14 05:57

ありがとうございます。なみだがとまりました。
KSwordOfHaste

2016/12/14 05:59

助けになったなら幸いです。
guest

回答1

0

ベストアンサー

コンポーネント階層を作るコードが乱れてます。コンポーネント階層は木構造(JFrameを唯一の親とした循環のない有向グラフ)なので特定のコンポーネントの親は一つしかありません(Aの子供でもありBの子供でもあるようなコンポーネントは存在できません)。コードでは同じコンポーネント(colorList)を違う親(colorBar, scroll, contentPane)に対して何度もaddする結果になってます。このようなことをすると最後にaddしたときの親がコンポーネントの親になります。つまりcolorListの親はcontentPaneになります。

java

1colorBar.add(colorList, BorderLayout.CENTER); 2=> colorBarの子供がcolorList (1) 3 4scroll = new JScrollPane(colorList); 5=> scrollの子供がcolorList (2) 6 7colorBar.add(scroll); 8=> colorBarの子供がscroll (3) 9 10getContentPane().add(colorList, BorderLayout.CENTER); 11=> メインパネルの子供がcolorList (4) 12 13以上によって作られる階層 14 15JFrame(ColorChoice) 16 +-> メインパネル(ColorChoice.contentPane) 17 +-> JList(colorList) 18 19正しい階層は 20JFrame(ColorChoice) 21 +-> メインパネル(ColorChoice.contentPane) 22 +-> JScrollPane(scroll) 23 +-> JList(colorList) 24(colorBarは不必要)

コンポーネント階層を作るときのコツですがなるべく階層構造の順番に作るとよいと思います。例えば下位から上位へ向けて作成するなら

  1. JListを作成
  2. JScrollPaneを作成(引数にJListを指定するのが簡単ですね)
  3. JFrameのcontentPaneへJScrollPaneをadd

投稿2016/12/14 05:53

KSwordOfHaste

総合スコア18392

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問