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?

Barbara Streisand
Lepaskan: 2024-12-13 15:04:10
asal
168 orang telah melayarinya

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

Menyelesaikan Mengubah Saiz Isu dengan Kanvas dalam JScrollPane dan JSplitPane

Dalam penciptaan antara muka pengguna grafik menggunakan NetBeans, adalah perkara biasa untuk menghadapi reka letak cabaran yang melibatkan komponen boleh ubah saiz dalam anak tetingkap. Soalan ini menyerlahkan isu khusus dengan mengubah saiz Kanvas dalam JScrollPane, yang terkandung dalam JSplitPane.

Masalah:

Apabila mengurangkan saiz komponen teratas ( mengandungi Kanvas) dalam JSplitPane, pembahagi kelihatan hilang di bawah Kanvas dan mungkin JScrollPane, menyebabkan reka letak yang tidak konsisten.

Penyelesaian:

Daripada menetapkan saiz pilihan komponen secara manual, adalah disyorkan untuk membenarkan mereka mengira komponen tersebut saiz pilihan secara dinamik. Ini boleh dicapai dengan menggunakan kaedah pack() pada tetingkap yang dilampirkan.

Contoh Kod:

Kod yang disediakan menggabungkan pendekatan ini dengan menggunakan GridLayout dan GraphPanel daripada cabutan itu perpustakaan.

import draw.GraphPanel;
import java.awt.EventQueue;
import java.awt.GridLayout;
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();
        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 Runnable() {

            @Override
            public void run() {
                new SplitGraph().display();
            }
        });
    }
}
Salin selepas log masuk

Penjelasan:

Menggunakan pack() secara automatik melaraskan saiz tetingkap untuk menampung saiz pilihan komponennya. Pengiraan dinamik ini memastikan saiz komponen berubah dengan betul tanpa menyebabkan pembahagi hilang.

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