У меня есть простая JEditorPane внутри JScrollPane, которая отображает номера строк на левой стороне. Он прекрасно работает, за исключением случаев, когда вы перемещаете окно за пределы экрана и снова тянете его назад, при прекращении перетаскивания это выглядит так:
есть идеи? Нужно ли мне прослушивать событие перемещения / перетаскивания и вызывать перерисовку / повторную проверку где-нибудь?
Думал, что это может быть что-то очевидное, но вот код. Я использую JSyntaxPane.
public EditorPanel()
{
this.setLayout(new BorderLayout());
PythonSyntaxKit.initKit();
codeEditor = new JEditorPane();
JScrollPane scrPane = new JScrollPane(codeEditor);
Dimension d = new Dimension(710,702);
codeEditor.setPreferredSize(d);
codeEditor.setContentType("text/python");
codeEditor.setText("Welcome to PhysUtil!");
this.add(scrPane, BorderLayout.CENTER);
toolbar = new PhysUtilToolbar();
this.add(toolbar, BorderLayout.PAGE_START);
this.repaint();
}
//from MainFrame Class...
public EditorPanel mainEditor;
public MainFrame()
{
//Someone can figure out how to load the icon...kept throwing an error
//ImageIcon icon = new ImageIcon(getClass().getResource("exit.png"));
PhysUtilMenuBar menuBar = new PhysUtilMenuBar();
this.mainEditor = new EditorPanel();
menuBar.editorPanel = mainEditor;
this.setJMenuBar(menuBar);
this.setTitle("PhysUtil");
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.add(mainEditor);
Image icon = Toolkit.getDefaultToolkit().getImage("icon.jpg");
this.setIconImage(icon);
this.setSize(800, 800);
this.setLocation(0, 0);
this.setVisible(true);
}