Я пытаюсь изменить размер диалогового окна (JOptionPane
) для длинного предложения с гиперссылкой.
Мой код ..
public class DialogTest {
public static void main(String[] args) throws Exception {
JTextPane jtp = new JTextPane();
Document doc = jtp.getDocument();
for (int i = 0; i < 50; i++) {
doc.insertString(doc.getLength(), " Hello Java World ", new SimpleAttributeSet());
if ((3 == i) || (7 == i) || (15 == i)) {
doc.insertString(doc.getLength(), " Hello Java World ", new SimpleAttributeSet());
SimpleAttributeSet attrs = new SimpleAttributeSet();
StyleConstants.setUnderline(attrs, true);
StyleConstants.setForeground(attrs, Color.BLUE);
String text = "www.google.com";
URL url = new URL("http://" + text);
attrs.addAttribute(HTML.Attribute.HREF, url.toString());
doc.insertString(doc.getLength(), text, attrs);
}
}
JScrollPane jsp = new JScrollPane(jtp);
jsp.setPreferredSize(new Dimension(480, 150));
jsp.setBorder(null);
JOptionPane.showMessageDialog(null, jsp, "Title", JOptionPane.INFORMATION_MESSAGE);
}}
Если я не установлю предпочтительный размер, этот диалог будет очень длинным и нечитаемым. Итак, я хочу исправить ширину до 480.
И я хочу настроить высоту в зависимости от длины текста.
Если я запускаю этот код, я вижу вертикальную полосу прокрутки. Но я не хочу показывать эту полосу прокрутки и регулировать высоту диалогового окна.
setPreferredSize
(он не делает того, что вы думаете). Извините, что не предложил альтернативный подход, но сейчас у меня мало времени. - person Kevin Panko   schedule 27.02.2014