Rumah Java javaTutorial Mengapa Tingkap Tidak Boleh Ubah Bertindih Apabila Diposisikan Bersebelahan?

Mengapa Tingkap Tidak Boleh Ubah Bertindih Apabila Diposisikan Bersebelahan?

Dec 11, 2024 am 08:41 AM

Why Do Non-Resizable Windows Overlap When Positioned Adjacent to Each Other?

Kedudukan Sempadan Tetingkap Tidak Boleh Ubah Saiz: Cabaran dan Penyelesaian

Dalam bidang pengurusan tetingkap, pembangun sering menghadapi isu yang membingungkan apabila cuba untuk letakkan tingkap yang tidak boleh diubah saiznya bersebelahan antara satu sama lain. Dalam situasi ini, kaedah setLocation nampaknya salah mengira dimensi sempadan tetingkap, mengakibatkan sempadan bertindih.

Untuk menggambarkan masalah ini, pertimbangkan coretan kod berikut:

import java.awt.Rectangle;
import javax.swing.JFrame;

public class FrameBorders {
  public static void main(String[] args) {
    JFrame frame1 = new JFrame("frame 1");
    JFrame frame2 = new JFrame("frame 2");

    frame1.setResizable(false);
    frame2.setResizable(false);

    frame1.setVisible(true);        
    Rectangle bounds = frame1.getBounds();      
    frame2.setLocation(bounds.x+bounds.width, bounds.y);
    frame2.setVisible(true);
  }
}
Salin selepas log masuk

Apabila Windows Aero sedang didayakan, bingkai kedua (bingkai2) diletakkan dengan tidak betul, bertindih dengan sempadan bingkai pertama. Ini berlaku kerana kaedah setLocation gagal mengambil kira sifat tetingkap yang tidak boleh diubah saiznya.

Seseorang mungkin membuat spekulasi bahawa kelakuan ini ialah pepijat, tetapi ia sebenarnya merupakan sumber masalah yang berpotensi apabila bekerja dengan bekas yang tidak boleh diubah saiz. Katakan anda melaraskan had bekas untuk kelihatan optimum pada platform anda. Walau bagaimanapun, apabila bekas itu dipaparkan pada platform yang berbeza dengan fon yang mempunyai metrik berbeza, teks mungkin menjadi kabur.

Oleh itu, apabila mengubah suai sempadan bekas yang tidak boleh diubah saiz, adalah penting untuk memastikan bahawa sebarang kandungan teks kekal kelihatan, tanpa mengira fon lalai platform hos. Untuk mencapai matlamat ini, anda boleh menggunakan teknik seperti mengira lebar rentetan menggunakan FontMetrics dan menetapkan saiz bekas dengan sewajarnya.

Atas ialah kandungan terperinci Mengapa Tingkap Tidak Boleh Ubah Bertindih Apabila Diposisikan Bersebelahan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Rangka Kerja 4 JavaScript teratas pada tahun 2025: React, Angular, Vue, Svelte Rangka Kerja 4 JavaScript teratas pada tahun 2025: React, Angular, Vue, Svelte Mar 07, 2025 pm 06:09 PM

Rangka Kerja 4 JavaScript teratas pada tahun 2025: React, Angular, Vue, Svelte

Bagaimanakah mekanisme kelas muatan Java berfungsi, termasuk kelas yang berbeza dan model delegasi mereka? Bagaimanakah mekanisme kelas muatan Java berfungsi, termasuk kelas yang berbeza dan model delegasi mereka? Mar 17, 2025 pm 05:35 PM

Bagaimanakah mekanisme kelas muatan Java berfungsi, termasuk kelas yang berbeza dan model delegasi mereka?

Bagaimanakah saya menggunakan Maven atau Gradle untuk Pengurusan Projek Java Lanjutan, Membina Automasi, dan Resolusi Ketergantungan? Bagaimanakah saya menggunakan Maven atau Gradle untuk Pengurusan Projek Java Lanjutan, Membina Automasi, dan Resolusi Ketergantungan? Mar 17, 2025 pm 05:46 PM

Bagaimanakah saya menggunakan Maven atau Gradle untuk Pengurusan Projek Java Lanjutan, Membina Automasi, dan Resolusi Ketergantungan?

Node.js 20: Peningkatan Prestasi Utama dan Ciri -ciri Baru Node.js 20: Peningkatan Prestasi Utama dan Ciri -ciri Baru Mar 07, 2025 pm 06:12 PM

Node.js 20: Peningkatan Prestasi Utama dan Ciri -ciri Baru

Bagaimanakah saya dapat melaksanakan teknik pengaturcaraan berfungsi di Java? Bagaimanakah saya dapat melaksanakan teknik pengaturcaraan berfungsi di Java? Mar 11, 2025 pm 05:51 PM

Bagaimanakah saya dapat melaksanakan teknik pengaturcaraan berfungsi di Java?

Bagaimanakah saya melaksanakan caching pelbagai peringkat dalam aplikasi java menggunakan perpustakaan seperti kafein atau cache jambu? Bagaimanakah saya melaksanakan caching pelbagai peringkat dalam aplikasi java menggunakan perpustakaan seperti kafein atau cache jambu? Mar 17, 2025 pm 05:44 PM

Bagaimanakah saya melaksanakan caching pelbagai peringkat dalam aplikasi java menggunakan perpustakaan seperti kafein atau cache jambu?

Spring Boot Snakeyaml 2.0 CVE-2022-1471 Isu Tetap Spring Boot Snakeyaml 2.0 CVE-2022-1471 Isu Tetap Mar 07, 2025 pm 05:52 PM

Spring Boot Snakeyaml 2.0 CVE-2022-1471 Isu Tetap

Merevolusikan saluran paip data dengan Apache Kafka pada tahun 2025 Merevolusikan saluran paip data dengan Apache Kafka pada tahun 2025 Mar 07, 2025 pm 06:19 PM

Merevolusikan saluran paip data dengan Apache Kafka pada tahun 2025

See all articles