ホームページ > Java > &#&チュートリアル > JSplitPane 内の JScrollPane の Canvas でのサイズ変更の問題を修正する方法

JSplitPane 内の JScrollPane の Canvas でのサイズ変更の問題を修正する方法

Linda Hamilton
リリース: 2024-12-29 16:44:13
オリジナル
436 人が閲覧しました

How to Fix Resizing Issues with Canvas in JScrollPane within JSplitPane?

JSplitPane 内の JScrollPane 内の Canvas でのサイズ変更の問題に対処する

アプリケーションで、以下を含む JSplitPane を調整するときにサイズ変更の問題が発生しました。 JScrollPane 内の Canvas。一番上のコンポーネントのサイズを小さくすると、ディバイダーが Canvas と JScrollPane の下に広がっているように見え、望ましくない外観になります。

解決策:

指定するのではなく優先サイズを手動で使用する場合は、コンポーネントが独自の優先サイズを動的に計算できるようにすることをお勧めします。これを行うことで、pack() メソッドを使用して、囲んでいるウィンドウのサイズをそれに応じて変更できます。

このアプローチを示すために、次のコード サンプルを使用して、上部に配置された GraphPanel で構成される SplitGraph を作成できます。コンポーネントと、下部コンポーネントの対応するコントロール パネル:

import draw.GraphPanel;
import java.awt.EventQueue;
import java.awt.GridLayout;
import java.awt.Image;
import java.net.URL;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;

public class SplitGraph extends JPanel {

    public SplitGraph() {
        super(new GridLayout());
        JSplitPane split = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
        GraphPanel graphPanel = new GraphPanel();
        Image image = new URL("https://placekitten.com/240/180").getContent();
        graphPanel.setImage(image);
        split.setTopComponent(new JScrollPane(graphPanel));
        split.setBottomComponent(graphPanel.getControlPanel());
        this.add(split);
    }

    private void display() {
        JFrame f = new JFrame("SplitGraph");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.add(this);
        f.pack();
        f.setLocationRelativeTo(null);
        f.setVisible(true);
    }

    public static void main(String[] args) {
        EventQueue.invokeLater(() -> new SplitGraph().display());
    }
}
ログイン後にコピー

この例では、GraphPanel インスタンスが上部コンポーネントに追加され、それに関連付けられたコントロール パネルが底部のコンポーネント。このコードは、手動でサイズを変更しなくても、コンポーネントに合わせて周囲のウィンドウのサイズを正常に調整します。

以上がJSplitPane 内の JScrollPane の Canvas でのサイズ変更の問題を修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート