Rumah > Java > javaTutorial > Bagaimana untuk Mencapai Sudut Lutsinar dalam Sempadan Segi Empat Bulat?

Bagaimana untuk Mencapai Sudut Lutsinar dalam Sempadan Segi Empat Bulat?

Patricia Arquette
Lepaskan: 2024-11-07 14:35:03
asal
261 orang telah melayarinya

How to Achieve Transparent Corners in a Rounded Rectangle Border?

Sempadan dengan Sudut Bulat & Ketelusan: Menghapuskan Sudut Latar Belakang

Pernyataan Masalah:

Pertanyaan berkisar pada TextBubbleBorder, a sempadan tersuai direka untuk kawasan teks. Walau bagaimanapun, apabila jidar digunakan untuk mencipta segi empat tepat bulat (dengan menetapkan saiz penuding kepada sifar), sudut di luar segi empat tepat kekal legap, memaparkan warna panel lalai dan bukannya ketelusan yang diingini.

Gambaran Keseluruhan Penyelesaian:

Kunci untuk mencapai ketelusan di sudut sempadan terletak pada mengecat warna latar belakang komponen induk di atas kawasan di luar segi empat tepat bulat. Ini melibatkan:

  1. Mengenal pasti kawasan di luar sempadan (menggunakan Kawasan).
  2. Mencipta laluan keratan yang mengecualikan rantau ini.
  3. Menetapkan klip konteks grafik ke laluan keratan.
  4. Melukis latar belakang induk.
  5. Memulihkan klip asal.

Kod Diubah Suai:

Kaedah paintBorder yang diubah suai berikut dalam kelas TextBubbleBorder menggabungkan langkah-langkah di atas:

@Override
public void paintBorder(
        Component c,
        Graphics g,
        int x, int y,
        int width, int height) {

    Graphics2D g2 = (Graphics2D) g;

    // ... (unchanged code)

    // Paint the BG color of the parent, everywhere outside the clip
    // of the text bubble.
    Component parent  = c.getParent();
    if (parent!=null) {
        Color bg = parent.getBackground();
        Rectangle rect = new Rectangle(0,0,width, height);
        Area borderRegion = new Area(rect);
        borderRegion.subtract(area);
        g2.setClip(borderRegion);
        g2.setColor(bg);
        g2.fillRect(0, 0, width, height);
        g2.setClip(null);
    }

    // ... (unchanged code)
}
Salin selepas log masuk

Keputusan:

Pengubahsuaian ini menarik latar belakang induk di kawasan di luar sudut bulat, menghasilkan sempadan lutsinar yang dikehendaki. Anda kini boleh membuat segi empat tepat bulat dengan jidar lutsinar yang disepadukan dengan lancar dengan komponen induknya.

Atas ialah kandungan terperinci Bagaimana untuk Mencapai Sudut Lutsinar dalam Sempadan Segi Empat Bulat?. 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