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

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

ただいまの
回答率

90.42%

  • Java

    14740questions

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

  • Eclipse

    1778questions

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

SWING UIにスクロール機能を付けたい

解決済

回答 5

投稿

  • 評価
  • クリップ 1
  • VIEW 1,152

eclipseでSWINGのアプリケーションウィンドーを作って、windowbuilderで開いてUIを作成しています。どうしてもスクロールバーの付け方がわからないのですが、やり方を教えてくれるサイトもしくはやり方をおしえてもらえないでしょうか?

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 5

+1

こんなページはどうでしょう。

JScrollPaneクラス - JavaDrive

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/06/16 15:18

    見たのですが、分かりにくくて困っています。というよりもスクロールバーが表示されなくて困っています。

    キャンセル

  • 2017/06/16 16:07

    「コードを書く」前提で話をするなら、提示したURLで書いているように、

    「親Frameのインスタンス.getContentPane().add(JScrollPaneのインスタンス)」

    という形で実現するはずです。

    「WindowBuilderを使って」という制約条件が外せないのであれば、それは特定ソフトウェアの使用方法に関する話になるかと思われるので、まずはWindowBuilderのマニュアルを参照してみてはどうでしょう?

    キャンセル

+1

stackoverflow: How to surround JTable with JScrollPane through windowbuilder?

の回答をみると、おそらくWindowBuilder上のパレットにscroll paneコントロールのアイコンがあり、まずそれを画面へ配置した後に、その上にスクロールさせたい画面コンポーネントを配置すればよいということだと思います。

スクロールペーンではなくスクロールバーを付けて自前で制御するのは面倒なのでスクロールペーン(JScrollPane)をお勧めします。WindowBuilderの機能詳細は知りませんが、おそらく縦・横のスクロールバーを「常に表示」「常に非表示」「必要に応じて表示」を個別に設定できるUIがあると思います。(もしその設定機能がなかったらコード上でそれをやることになりますが、きっとあるような気がします)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/06/16 17:31

    windowbuilderではなく手打ちでスクロールバーをつける場合はどのようにプログラミングしたらよいのでしょうか?出来れば一行ごとに意味の解説を一言でいいので付けていただけると幸いです。

    キャンセル

  • 2017/06/16 17:36 編集

    そういうことならtkturboさんが提示されているサイトやOracleのAPIリファレンスのJScrollPaneのページが参考になると思います。

    http://docs.oracle.com/javase/jp/8/docs/api/javax/swing/JScrollPane.html

    基本的にはJScrollPaneのコンストラクターに引数3つ渡すだけです。スクロールの詳細処理はJScrollPaneが面倒を見てくれます。より適切なスクロールのさせかた(スクロールバーをクリックしたときどの程度スクロールさせるか)はScrollableインターフェースの仕様をみるとよいです。

    キャンセル

check解決した方法

0

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/06/20 10:12 編集

    自己解決したなら「どのように解決したか」をきちんと書いてください。閲覧者の参考になるかも知れない情報が何も残らなくなります。このサイトは「自分だけが解決すればそれでいい」という質問者は歓迎されませんよ?

    キャンセル

  • 2017/06/20 10:49

    操作ミスの関係でノーコメントで解決済みにしてしまいました。ご指摘ありがとうございます。

    キャンセル

  • 2017/06/20 11:11

    回答も編集できるのですが・・・操作に慣れてないとこうした失敗はあるものですね。

    キャンセル

  • 2017/06/23 10:22

    投稿したURLを見て作成を試みたのですが、上手くできなかったので、やり方を知人に教えてもらいました。良かったら新しいほうの回答をご一読下されば嬉しく思います。

    キャンセル

0

http://alvinalexander.com/blog/post/jfc-swing/java-swing-create-jscrollpane-example-editor

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

知人から作成方法について教えてもらったので、共有致します。

package aaaa;

import java.awt.Dimension;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;

public class JScrollPane {

    private JFrame frame;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    JScrollPane window = new JScrollPane();
                    window.frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the application.
     */
    public JScrollPane() {
        initialize();
    }

    /**
     * Initialize the contents of the frame.
     */
    private void initialize() {

        frame = new JFrame();
        frame.setBounds(100, 100, 450, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);

        javax.swing.JScrollPane scrollPane = new javax.swing.JScrollPane();
        scrollPane.setBounds(0, 0, 434, 262);
        frame.getContentPane().add(scrollPane);

        JPanel panel = new JPanel();
        scrollPane.setViewportView(panel);
        panel.setPreferredSize(new Dimension(100, 3000));
        panel.setLayout(null);

        JRadioButton rdbtnNewRadioButton = new JRadioButton("ボタン1");
        rdbtnNewRadioButton.setBounds(78, 65, 113, 21);
        panel.add(rdbtnNewRadioButton);

        JRadioButton rdbtnNewRadioButton_1 = new JRadioButton("ボタン2");
        rdbtnNewRadioButton_1.setBounds(78, 1000, 113, 21);
        panel.add(rdbtnNewRadioButton_1);
    }
}

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/06/23 10:44

    メインのクラス名をJScrollPaneというswingの標準提供クラスと同名にしないことをお勧めします。このクラスはスクロールペーンを意味せず、アプリケーションを意味すると思うのでJScrollPaneSampleとでもしておくのがよいのではないでしょうか?そうすればJScrollPaneを普通にimportしてFQN(Full qualified name)を使わなくても表現できます。

    またsetBoundsとstPreferredSizeを混用しているのはあまりよろしくないと思います。
    (1)レイアウトマネージャーあり/setMinimumSize/setPreferredSize/setMaximumSize/packあり
    (2)レイアウトマネージャーなし/setBounds/setSize/packなし
    のいずれかに統一したほうがよさそうです。どちらかといえば(1)を推奨します。

    最後に上記の方法でJScrollPaneを使えますが、個人的な意見としては以下のようにコンストラクターでビューポートビューと、水平・垂直スクロールバーの表示方法を一度に指定した方がシンプルで分かり易いと思います。
    new JScrollPane(panel, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

    キャンセル

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

  • ただいまの回答率 90.42%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • Java

    14740questions

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

  • Eclipse

    1778questions

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