Rumah > Java > javaTutorial > Bagaimana untuk Membetulkan Isu Saiz Semula dengan Kanvas dalam JScrollPane dalam JSplitPane?

Bagaimana untuk Membetulkan Isu Saiz Semula dengan Kanvas dalam JScrollPane dalam JSplitPane?

Linda Hamilton
Lepaskan: 2024-12-29 16:44:13
asal
436 orang telah melayarinya

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

Mengatasi Isu Saiz Semula dengan Kanvas dalam JScrollPane dalam JSplitPane

Dalam aplikasi anda, anda menghadapi masalah mengubah saiz apabila melaraskan JSplitPane yang mengandungi Kanvas dalam JScrollPane. Setelah mengecilkan saiz komponen atas, pembahagi kelihatan memanjang di bawah Kanvas dan JScrollPane, menghasilkan penampilan yang tidak diingini.

Penyelesaian:

Daripada menyatakan saiz pilihan secara manual, adalah disyorkan untuk membenarkan komponen mengira saiz pilihan mereka sendiri secara dinamik. Dengan melakukan ini, tetingkap yang disertakan boleh bersaiz sewajarnya menggunakan kaedah pack().

Untuk menunjukkan pendekatan ini, sampel kod berikut boleh digunakan untuk mencipta SplitGraph, yang terdiri daripada GraphPanel yang diletakkan di bahagian atas komponen dan panel kawalan yang sepadan dalam komponen bawah:

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());
    }
}
Salin selepas log masuk

Dalam contoh ini, tika GraphPanel ditambahkan pada komponen atas dan kawalan yang berkaitan dengannya panel diletakkan di bahagian bawah komponen. Kod ini berjaya melaraskan saiz tetingkap tertutup untuk menampung komponen tanpa sebarang saiz semula manual.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Isu Saiz Semula dengan Kanvas dalam JScrollPane dalam JSplitPane?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan