Rumah >Java >Bagaimana untuk menetapkan kedudukan JPanel di mana-mana pada skrin

Bagaimana untuk menetapkan kedudukan JPanel di mana-mana pada skrin

WBOY
WBOYke hadapan
2024-02-09 10:40:09715semak imbas

editor php Strawberry akan memperkenalkan anda cara menetapkan JPanel kepada sebarang kedudukan pada skrin. JPanel ialah komponen kontena yang biasa digunakan dalam Java Swing. JPanel boleh diletakkan dengan menetapkan pengurus susun atur dan menetapkan kedudukan komponen. Pertama, kita perlu memilih pengurus susun atur yang sesuai, seperti FlowLayout, BorderLayout, dsb. Anda kemudiannya boleh meletakkan JPanel di mana-mana sahaja pada skrin dengan menetapkan sempadan komponen dan sifat kedudukan. Dengan cara ini, anda boleh dengan mudah merealisasikan kedudukan bebas JPanel dan menyediakan reka bentuk antara muka yang lebih fleksibel dan pengalaman interaktif.

Kandungan soalan

Saya perlu mempunyai banyak JPanel, tetapi saya tidak boleh meletakkannya di tempat yang saya mahu kerana apabila saya cuba menukar perkara seperti sempadan, ia sama ada hilang. Terima kasih atas sebarang bantuan

Ini adalah kod untuk panel yang saya cuba letak. Saya mahu ia berada kira-kira 3/4 jalan ke sebelah kanan skrin tetapi saya tidak boleh mengalihkannya melepasi sudut kanan atas

textField = new JTextField("Sample Text");
textField.setPreferredSize(new Dimension(200, 30));
textField.setFont(new Font("Arial", Font.PLAIN, 16));
textField.setEditable(false); // Set to false to make it read-only

JPanel textPanel = new JPanel(new GridBagLayout());
textPanel.add(textField);
add(textPanel, BorderLayout.NORTH);

Penyelesaian

Panel (dan semua Swing) sentiasa memerlukan komponen peringkat teratas (seperti JFrame, JDialog atau JWindow) untuk dipaparkan pada skrin. Walaupun anda meletakkan panel sepenuhnya di dalam bekas peringkat atas (tugas pengurus susun atur untuk membetulkannya) - perkara yang anda perlu ubah ialah kedudukan bekas peringkat atas.

Berikut ialah contoh mencipta tetingkap yang tidak berada di sudut kiri atas:

import javax.swing.JFrame;
import javax.swing.JLabel;

public class Main {
    
    public static void main(String[] args) {
        JFrame f = new JFrame("Positioning Test Frame");
        f.add(new JLabel("Window Content Area"));
        f.pack(); // make the Window as small as possible
        //f.setLocationRelativeTo(null); // this line will center the window
        f.setLocation(200, 200); // this line will go to absolute coordinates
        f.setVisible(true);
    }
}

Anda mungkin perlu mengira kedudukan tetingkap berdasarkan saiz skrin (kira-kira 3/4 jalan ke kanan). Kod di bawah akan memberikan saiz desktop (yang mungkin terdiri daripada berbilang skrin). Jika anda hanya berminat dengan salah satu skrin, anda mungkin dapat melihat dari mana anda mendapat nilai itu.

public static Rectangle2D getDesktopSize() {
    Rectangle2D result = new Rectangle2D.Double();
    GraphicsEnvironment localGE = GraphicsEnvironment.getLocalGraphicsEnvironment();
    for (GraphicsDevice gd : localGE.getScreenDevices()) {
      for (GraphicsConfiguration graphicsConfiguration : gd.getConfigurations()) {
        result.union(result, graphicsConfiguration.getBounds(), result);
      }
    }
    return result;
}

Atas ialah kandungan terperinci Bagaimana untuk menetapkan kedudukan JPanel di mana-mana pada skrin. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam