Используйте JTextPane
или JEditorPane
, который может обрабатывать стилизованный текст (со встроенными значками). См. Как использовать панели редактора и текстовые панели для получения более подробной информации.
Обновление
Мне нужно создать пользовательский компонент, который будет выглядеть как JTextField в другом стиле. Использование JTextPane или JEditorPane изменит границы штриховки и компонента.
В самом деле? На следующем снимке экрана показаны все 3. Что есть что?
(Нет обмана, глядя на код 1-й.)
Что касается PLAF. Покажите мне ПЛФ, в котором между ними есть какое-то видимое различие.
import java.awt.*;
import javax.swing.*;
class DistinguishThese {
public void initGui() {
JPanel gui = new JPanel(new GridLayout(3,0,2,2));
gui.add(new JTextField(5));
gui.add(new JScrollPane(new JEditorPane()));
gui.add(new JScrollPane(new JTextPane()));
JOptionPane.showMessageDialog(null, gui);
}
public static void main(String[] args) {
SwingUtilities.invokeLater( new Runnable() {
public void run() {
DistinguishThese dt = new DistinguishThese();
dt.initGui();
}
});
}
}