import java.awt.BorderLayout;
import java.util.Vector;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JScrollPane;public class Test extends JFrame {
JEditorPane editor = new JEditorPane();
JScrollPane scrollPane = new JScrollPane(editor);
Vector<Integer> lineNumber = new Vector<Integer>();
JList lineNumberPane= new JList(lineNumber); public Test() {
//scrollPane.setRowHeaderView(lineNumberPane);//如果取消注释,那么显示的效果讲改变,
//原本设置的选中会被取消掉.为什么?
editor.setText("12432412#$\tsdgsdfgdsfg\r\nadg34adgdafgsdfgsdg"); editor.setSelectionStart(1);
editor.setSelectionEnd(7);
this.add(scrollPane,BorderLayout.CENTER);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
} public static void main(String[] args) {
Test jtfct = new Test();
jtfct.setBounds(100, 100, 800,600);
jtfct.setVisible(true); }
}scrollPane.setRowHeaderView(lineNumberPane);这行如果取消掉注释效果将改变,原本设置的选中被见了,为什么?
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Rectangle;
import java.util.Vector;import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JScrollPane;public class test123 extends JFrame {
public test123() {
this.setLayout(null);
JEditorPane editor = new JEditorPane();
Vector<Integer> lineNumber = new Vector<Integer>();
lineNumber.add(1);
lineNumber.add(2);
lineNumber.add(3);
lineNumber.add(4);
JList lineNumberPane= new JList(lineNumber);
JScrollPane scrollPane = new JScrollPane(lineNumberPane);
scrollPane.setRowHeaderView(editor);
editor.setText("12432412#$\tsdgsdfgdsfg\r\nadg34adgdafgsdfgsdg");
editor.setSelectionStart(1);
editor.setSelectionEnd(10);
scrollPane.setBounds(new Rectangle(10,10,200,100));
this.add(scrollPane);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
} public static void main(String[] args) {
test123 jtfct = new test123();
jtfct.setBounds(100, 100, 800,600);
jtfct.setVisible(true); }
}是挺奇怪的 沒弄懂 我這樣就能顯示 但是反過來就不行了~~
可以加一句 lineNumberPane.setFocusable(false); 来禁止lineNumberPane获得焦点
或者参考这个bug报告里的方法使文本组件在没有焦点的情况下也显示高亮文本
http://bugs.sun.com/bugdatabase/view_bug.do;jsessionid=2ae4ce31560e0b2187864997dbd89?bug_id=4273908