Sudut Lutsinar dalam Sempadan dengan Sudut Bulat
Dalam kod yang diberikan, kelas TextBubbleBorder melukis segi empat tepat bulat dengan penuding segi tiga di bahagian bawah . Walau bagaimanapun, sudut di luar segi empat tepat memanjang sedikit, menunjukkan warna latar belakang panel induk. Untuk mencapai sudut lutsinar, kami mengubah suai kaedah paintBorder untuk memasukkan langkah tambahan:
// 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); }
Kod ini menyemak sama ada komponen mempunyai induk, mendapatkan semula warna latar belakangnya dan mencipta segi empat tepat yang mewakili seluruh kawasan sempadan. Ia kemudian mencipta Kawasan sempadan objekRegion yang mewakili segi empat tepat ini. Seterusnya, ia menolak kawasan yang mewakili gelembung teks daripada borderRegion, mencipta Kawasan yang dipanggil klip yang mewakili kawasan di luar gelembung teks.
Dengan klip, kod menetapkan kawasan keratan untuk objek Graphics2D, mengisinya dengan warna latar belakang ibu bapa, dan kemudian menetapkan semula kawasan keratan untuk melukis sempadan itu sendiri. Ini memastikan bahawa sudut di luar segi empat tepat bulat menjadi lutsinar, menunjukkan warna latar belakang ibu bapa.
Atas ialah kandungan terperinci Bagaimana untuk Mencapai Sudut Lutsinar dalam Segiempat Bulat dengan Penunjuk Segi Tiga?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!