Rumah >Java >javaTutorial >Bagaimana untuk Mencipta Sempadan Bulat dengan Ketelusan di Jawa?

Bagaimana untuk Mencipta Sempadan Bulat dengan Ketelusan di Jawa?

Barbara Streisand
Barbara Streisandasal
2024-11-17 16:23:02219semak imbas

How to Create a Rounded Border with Transparency in Java?

Sempadan dengan Sudut Bulat dan Ketelusan

Soalan ini menangani isu mewujudkan sempadan bulat dengan ketelusan, membolehkan komponen asas ditunjukkan melalui . Penyelesaiannya melibatkan pengubahsuaian kelas TextBubbleBorder untuk melukis warna latar belakang induk di luar kawasan klip sempadan.

Penyelesaian:

Pengubahsuaian yang dibuat pada kelas TextBubbleBorder adalah sebagai berikut:

// 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 mendapatkan semula komponen induk dan warna latar belakangnya. Ia kemudian mencipta kawasan yang mewakili kawasan sempadan dan menolak kawasan gelembung dan penunjuk daripadanya. Ini mentakrifkan wilayah di luar sempadan.

Dengan set kawasan klip, kod tersebut mengisi wilayah dengan warna latar belakang komponen induk, menjadikan sempadan telus di luar sudut bulat.

Pertimbangan Tambahan:

  • Pepijat wujud dalam kod asal, menyebabkan isu keratan. Pepijat ini telah dibetulkan dalam "pembetulan pepijat keratan" untuk kaedah paintComponent().
  • Dengan menetapkan saiz penunjuk kepada 0, jidar berubah menjadi segi empat tepat bulat standard.
  • Parameter kiri diperkenalkan dalam pembina TextBubbleBorder untuk mencipta buih sejajar kanan jika ditetapkan kepada palsu.

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Sempadan Bulat dengan Ketelusan di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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