سؤال

وكيف يمكنني أن أجعل نص JLabel تمتد على خط آخر؟

هل كانت مفيدة؟

المحلول

ويمكنك القيام بذلك عن طريق وضع HTML في التعليمات البرمجية، لذلك:

JFrame frame = new JFrame();
frame.setLayout(new GridLayout());
JLabel label = new JLabel("<html>First line<br>Second line</html>");
frame.add(label);
frame.pack();
frame.setVisible(true);

نصائح أخرى

وإذا كنت تريد jLabel النص الخاص بك لتغيير حجم تلقائيا على سبيل المثال في لمط gridbaglayout بما فيه الكفاية لمجرد أن يضع النص في علامات HTML مثل ذلك:

JLabel label = new JLabel("<html>First line and maybe second line</html>");

واكتب المحتوى (أي "نص" مجال الملكية) داخل علامة <html></html>. بحيث يمكنك استخدام <br> or<P> لإدراج سطر جديد.

وعلى سبيل المثال:

String labelContent = "<html>Twinkle, twinkle, little star,<BR>How I wonder what you are.<BR>Up above the world so high,<BR>Like a diamond in the sky.</html>";

وسيعرض على النحو التالي:

وميض، وميض، النجم الصغير،
كيف أتساءل ما كنت.
حتى أعلاه العالم عالية جدا،
مثل الماس في السماء.

ويمكنك أيضا استخدام JXLabel من < وأ href = "https://swingx.java.net/" يختلط = "نوفولو"> وSwingX مكتبة .

JXLabel multiline = new JXLabel("this is a \nMultiline Text");
multiline.setLineWrap(true);

ولقد استخدمت JTextArea لJLabels متعدد الأسطر.

JTextArea textarea = new JTextArea ("1\n2\n3\n"+"4\n");

http://docs.oracle.com/ javase / 7 / مستندات / المعهد / javax / الأرجوحة / JTextArea.html

في حالتي كان كافيا لتقسيم النص في كل \n ثم قم بإنشاء JLabel عن كل سطر:

JPanel panel = new JPanel(new GridLayout(0,1));
String[] lines = message.split("\n");
for (String line : lines) {
    JLabel label = new JLabel(line);
    panel.add(label);
}

وكنت فوق في JOptionPane.showMessageDialog

ومن الممكن استخدام (الأساسية) CSS في HTML.


وارتبط هذا السؤال من - جافا

String labelText ="<html>Name :"+name+"<br>Surname :"+surname+"<br>Gender :"+gender+"</html>";
JLabel label=new JLabel(labelText);
label.setVisible(true);
label.setBounds(10, 10,300, 100);
dialog.add(label);

لماذا تعطي الأمور المعقدة ... يمكنك القيام به فقط من قبل وضع "\ ن" بدلا من علامات HTML

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top