Saya mencoba mewarnai satu karakter dalam string, tetapi ketika saya melakukannya, sebagian besar spasi putih menghilang. Mengapa itu terjadi dan apakah ada solusi?

map[9]  =       "#                                     #        ####     #";
map[10] =       "#                                     #        #        #";
map[11] = "<html>#                                     #        #<font color=YELLOW>.</font>       #</hmtl>";
map[12] =       "#   ###################################        #        #";
map[13] =       "#   #                                 #        ####     #";

Saya menetapkan string ke array dan kemudian mengatur setiap string ke JLabelnya sendiri

Saya sudah mencoba memasukkan karakter spasi putih unicode (spasi normal \u0020 dan spasi putih tanpa jeda \u00A0): Ruang kosong tanpa jeda berfungsi tetapi saya kemudian harus memeriksa apakah ada ruang kosong di posisi pemain dan saya tidak membuatnya berfungsi dengan baik dengan \u00A0.

Juga, ketika saya menggunakan tag html untuk string (teks atau JLabel - saya tidak tahu yang mana dari keduanya) sedikit dioffset ke bawah. Bagaimana saya bisa membuatnya tetap di posisi yang sama seperti tanpa tag html?

0
user12859637 20 Mei 2020, 22:49

1 menjawab

Jawaban Terbaik

Spasi menghilang, karena HTML adalah spasi-agnostik. Ini berarti bahwa struktur dan tata letak dokumen tidak bergantung pada apakah ada spasi, tab, dan baris baru, dan berapa jumlahnya.

Ini sesuai spesifikasi dan diperlukan untuk semua parser HTML, termasuk penggunaan "HTML semu" seperti di JLabel (yang hanya mendukung sebagian kecil HTML untuk pemformatan dasar).

Solusi yang memungkinkan:

  • coba gunakan &nbsp; alih-alih Unicode. Ini dapat menyebabkan efek samping yang sama
  • coba kelilingi setiap ruang dalam elemennya sendiri, misalnya <span>, <b> atau yang serupa. Ini mungkin berhasil, tetapi akan membuatnya sangat rumit. Juga, tidak yakin apakah JLabel dapat menangani bentang.

Selain itu, jika Anda mencoba mencapai semacam indikator kemajuan atau "garis pencarian", mungkin ada solusi yang lebih baik daripada JLabel berwarna, misalnya JProgressBar...

2
Mike 20 Mei 2020, 20:04