У меня возникла такая проблема. У меня есть главный Frame, в нем находится JTextPane. Так же у меня вызывается второй Frame, в котором содержиться JComboBox с шрифтами. Хочу, чтоб при выборе элемента в combo, тут же менялся шрифт выделенной подстроки в TextPane. В данной релизации - TextPane просто ощищается. Подскажите, пожалуйста, в чем дело. Это описание фрейма с combo
| Код | JFrame fr = new JFrame("Fonts"); fr.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); fr.setSize(300, 150);
Container contentPane = fr.getContentPane(); contentPane.setLayout(null); String[] fonts; GraphicsEnvironment ge = GraphicsEnvironment .getLocalGraphicsEnvironment(); fonts = ge.getAvailableFontFamilyNames();
JComboBox combo = new JComboBox(); for (int i = 0; i < fonts.length; i++) combo.addItem(fonts[i]); combo.setBounds(0, 0, 100, 30);
contentPane.add(combo); combo.addItemListener(this); fr.setVisible(true);
|
А это непосредственно обработка выбора шрифта
| Код | public void itemStateChanged(ItemEvent e) { String St = (String) e.getItem(); DefaultStyledDocument dsd = new DefaultStyledDocument(); tp.setDocument(dsd); SimpleAttributeSet sas1 = new SimpleAttributeSet(); StyleConstants.setFontFamily(sas1, St); dsd.setCharacterAttributes(tp.getSelectionStart(), tp.getSelectionEnd(), sas1, false); };
private JTextPane tp;
|
|