জেএবেবেলে নিউলাইন


107

আমি কীভাবে একটি নতুন লাইন প্রদর্শন করতে পারি JLabel ?

উদাহরণস্বরূপ, যদি আমি চাইতাম:

ওহে বিশ্ব!
blahblahblah

এই মুহুর্তে আমার যা আছে:

JLabel l = new JLabel("Hello World!\nblahblahblah", SwingConstants.CENTER);

এটি প্রদর্শিত হয়:

হ্যালো ওয়ার্ল্ড!

যদি এই বোবা প্রশ্ন হয় তবে আমাকে ক্ষমা করুন, আমি কেবল কিছু সুইং বেসিক শিখছি ...


1
নিশ্চয়ই বোবা প্রশ্ন নয়। আমাকে এইচটিএমএল বের করার জন্য খুব বেশি সময় দোলানো সম্ভব হয়েছিল।
সাইমন বার্স

উত্তর:


174

এর সাথে স্ট্রিংকে ঘিরে এবং এর সাথে <html></html>লাইনগুলি ভেঙে দিন <br/>

JLabel l = new JLabel("<html>Hello World!<br/>blahblahblah</html>", SwingConstants.CENTER);

3
কেবলমাত্র একটি সংশোধন করুন: কেবলমাত্র <br> এর পরিবর্তে <br /> ব্যবহার করুন ... এটি করার পদ্ধতিটি প্রস্তাবিত (কোনও বন্ধ হওয়া ট্যাগগুলি মিস না করার জন্য) ... শুভ কোডিং ...
নিতিন বানসাল

6
@ নিতিনবাঁসাল আসলে এটি HTML হিসাবে ছেড়ে দেওয়ার জন্য এটি HTML এর নতুন সংস্করণে প্রস্তাবিত। একে অকার্যকর ট্যাগ বলা হয়। <br /> এখনও পিছনের সামঞ্জস্যের জন্য কাজ করে।
gsingh2011

@ gsingh2011: ঠিক আছে ... আরও ভাল :-)
নিতিন বানসাল

3
কোনও ধারণা কেন জেলাবেল ডিফল্টরূপে নিউলাইনগুলি সমর্থন করে না?
ApproachingDarknessFish

2
আপনাকে এমনকি এইচটিএমএল ট্যাগটি বন্ধ করতে হবে না। রানটাইমের সময় যদি আপনাকে পাঠ্য সংযোজন করতে হয় তবে এটি এটিকে অনেক সহজ করে তোলে!
রবার্তো

9

আপনি চেষ্টা করে এটি করতে পারেন:

myLabel.setText("<html>" + myString.replaceAll("<","&lt;").replaceAll(">", "&gt;").replaceAll("\n", "<br/>") + "</html>")

এটি করার সুবিধাগুলি হ'ল:

  • এটি এর সাথে সমস্ত নতুনলাইন প্রতিস্থাপন করে <br/>এটি ব্যর্থ ব্যতীত ।
  • এটি স্বয়ংক্রিয়ভাবে পরিণামস্বরূপ প্রতিস্থাপন <এবং >সঙ্গে &lt;এবং &gt;যথাক্রমে প্রতিরোধ কিছু ব্যাপক ধ্বংস রেন্ডার।

এটি যা করে তা হ'ল:

  • "<html>" +htmlশুরুতে একটি খোলার ট্যাগ যোগ করে
  • .replaceAll("<", "&lt;").replaceAll(">", "&gt;")পলায়ন <এবং >সুবিধার জন্য
  • .replaceAll("\n", "<br/>") দ্বারা সমস্ত newlines প্রতিস্থাপন brআপনি যা চেয়েছিলেন তার জন্য (এইচটিএমএল লাইন ব্রেক)
  • ... এবং শেষে + "</html>"আমাদের htmlট্যাগ বন্ধ করে ।

পিএস: আমি এত পুরানো পোস্টটি জাগাতে পেরে খুব দুঃখিত, তবে যাই হোক না কেন, আপনার জাভাটির জন্য আপনার কাছে একটি নির্ভরযোগ্য স্নিপেট রয়েছে!



2

আপনি করতে পারেন

JLabel l = new JLabel("<html><p>Hello World! blah blah blah</p></html>", SwingConstants.CENTER);

এবং এটি যথাযথ যেখানে এটি স্বয়ংক্রিয়ভাবে মোড়ানো হবে।


2

JIDE মাল্টলাইনল্যাবেলের প্রস্তাব দেওয়ার জন্য আকাশকে ধন্যবাদ। একাধিক লাইন সমর্থন করার জন্য সম্প্রতি JIDE এর স্টাইলড লেবেলটি বাড়ানো হয়েছে। আমি মাল্টিলাইন লেবেলের উপরে এটি সুপারিশ করব কারণ এতে আরও অনেক দুর্দান্ত বৈশিষ্ট্য রয়েছে। আপনি নীচের স্টাইলড লেবেল উপর একটি নিবন্ধ চেক করতে পারেন। এটি এখনও নিখরচায় এবং মুক্ত উত্স।

http://www.jidesoft.com/articles/StyledLabel.pdf


1

জেবেল আসলে কিছু প্রাথমিক এইচটিএমএল প্রদর্শন করতে সক্ষম, যার কারণেই এটি আপনার নতুন লাইনের চরিত্রের ব্যবহারের প্রতিক্রিয়া জানায় না (যেমন, সিস্টেম.আউট বলুন)।

যদি আপনি সম্পর্কিত এইচটিএমএল রাখেন এবং ব্যবহার করেন <BR>তবে আপনি আপনার নতুন লাইন পাবেন।


দীর্ঘশ্বাস ফেলে আমি আপনার এইচটিএমএল থেকে বাঁচতে ব্যাকটিক্স যুক্ত করার চেষ্টা করেছি, তবে এটি বলে যে আমি কমপক্ষে characters টি অক্ষর না যুক্ত না করে আমি সম্পাদনা করতে পারি না।
আনানফায়

1
@ অন্নান এটি এইচটিএমএল এ প্রয়োজনীয় নয়। আপনি যে বিষয়ে কথা বলছেন তা হ'ল এক্সএইচটিএমএল সমর্থন করার জন্য। stackoverflow.com/questions/1946426/html-5-is-it-br-br-or-br
b1nary.atr0phy

@ b1naryatr0phy না, সমস্যাটি ঠিক করা হয়েছিল :) মূল পোস্টটিতে একটি আক্ষরিক <br>ট্যাগ ছিল যা পোস্টে আক্ষরিক লাইন বিরতি হিসাবে স্ট্যাক-ওভারফ্লো দ্বারা ফরম্যাট করা হয়েছিল।
আনানফায়
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.