के साथ जेडडिटरपेन के पसंदीदा आकार को नियंत्रित करना मेरे पास JEditorPane
है जो एक पॉपअप के अंदर प्रदर्शित होता है, जो एक बटन के माध्यम से ट्रिगर होता है। फलक, लंबे समय पाठ होता है, इसलिए यह एक JScrollPane
अंदर नेस्टेड है, और पॉपअप 300 x 100 के अधिकतम आकार के लिए विवश किया जाता है: JEditorPane
उदाहरण के लिए पहली बार में दिखाए जाने परलंबे टेक्स्ट
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
String text = "Potentially looooooong text. " +
"Lorem ipsum dolor sit amet, consectetuer" +
"adipiscing elit, sed diam nonummy nibh euismod " +
"tincidunt ut laoreet dolore magna aliquam" +
"adipiscing elit, sed diam nonummy nibh euismod" +
"erat volutpat. Ut wisi enim ad minim veniam, " +
"quis nostrud exerci tation.";
final JEditorPane editorPane = new JEditorPane("text/html", text);
editorPane.setEditable(false);
final JButton button = new JButton("Trigger Popup");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JPopupMenu popup = new JPopupMenu();
popup.setLayout(new BorderLayout());
popup.add(new JScrollPane(editorPane));
Dimension d = popup.getPreferredSize();
int w = Math.min(300, d.width);
int h = Math.min(100, d.height);
popup.setPopupSize(w, h);
Dimension s = button.getSize();
popup.show(button, s.width/2, s.height/2);
}
});
JFrame f = new JFrame("Layout Demo");
f.setSize(200, 200);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setLocationRelativeTo(null);
f.getContentPane().add(button);
f.setVisible(true);
}
});
}
(यानी बटन है जब एक बार क्लिक किया) यह किसी भी तरह एक पसंदीदा ऊंचाई जो बहुत छोटा है (1) रिपोर्ट करने के लिए लगता है:
बाद बटन क्लिक करने के बाद, लेआउट कितना भी इसे उम्मीद होती है (2):
मैं कैसे लागू कर सकते हैं/एक उचित वांछित माप थोपना तो यह हमेशा की तरह (2) को प्रारंभ होगा?
@finnw:। बहुत बढ़िया विवरण और काम के आसपास - बहुत बहुत धन्यवाद! – netzwerg
उत्कृष्ट समाधान, +1! हालांकि यह थोड़ा सा समय रहा है, मेरे पास आपके लिए एक और अच्छा सवाल है। मैंने JTextPane के साथ एक ही दृष्टिकोण की कोशिश की, यह एक जेडडिटरपेन सबक्लास के अलावा कुछ भी नहीं है। और यह ' टी काम। मैं समझने के लिए गहराई (BasicTextUI) में जाने की कोशिश कर रहा हूं कि अंतर कहां है। लेकिन शायद आप इसे पहले ही जानते हैं? :-) – AgostinoX