String s = "0"; sli=jTxtArea1.getLineCount(); s = Integer.toString(sli);
if(LnNums) { setLineNums(); //LnNums =false; } }
private void setLineNums() {
jTLineNums.setText(""); //jTLNums.setFont (new Font (fName, Font.PLAIN, fSize));
for (int i = 1; i <= sli; i++) { jTLineNums.append(i+" \r\n"); } //setFoc (); }
public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() {
public void run() { new LineNumberTest().setVisible(true); } }); }
public javax.swing.JPanel jPanel1; public javax.swing.JScrollPane jScrollPane1; public javax.swing.JTextArea jTLineNums; public javax.swing.JTextArea jTxtArea1; boolean LnNums = true; int iLnNums, iSymBar, iCodeBar, iInv, sli, ci; }
HeaderTable监听MainTable的ListSelection事件, 保持选中一致.
监听MainTable的TableModelChange事件, 保持行数一致.
重写HeaderTable的模型, getValueAt(row, column)返回row + 1
{
/** Creates new form LineNumberTest */
public LineNumberTest()
{
initComponents();
}
// <editor-fold defaultstate="collapsed" desc=" Generated Code ">
private void initComponents()
{
jScrollPane1 = new javax.swing.JScrollPane();
jPanel1 = new javax.swing.JPanel();
jTxtArea1 = new javax.swing.JTextArea();
jTLineNums = new javax.swing.JTextArea();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jPanel1.setLayout(new java.awt.BorderLayout());
jTxtArea1.addCaretListener(new javax.swing.event.CaretListener() {
public void caretUpdate(javax.swing.event.CaretEvent evt)
{
jTxtArea1CaretUpdate(evt);
}
});
jPanel1.add(jTxtArea1, java.awt.BorderLayout.CENTER);
jTLineNums.setBackground(javax.swing.UIManager.getDefaults().getColor("TextField.disabledBackground"));
jTLineNums.setEditable(false);
jPanel1.add(jTLineNums, java.awt.BorderLayout.WEST);
jScrollPane1.setViewportView(jPanel1);
getContentPane().add(jScrollPane1, java.awt.BorderLayout.CENTER);
java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
setBounds((screenSize.width-400)/2, (screenSize.height-300)/2, 400, 300);
}
// </editor-fold>
private void jTxtArea1CaretUpdate(javax.swing.event.CaretEvent evt)
{
//Caret
ci = jTxtArea1.getCaretPosition();
String sc;
sc = Integer.toString(ci);
String s = "0";
sli=jTxtArea1.getLineCount();
s = Integer.toString(sli);
if(LnNums) {
setLineNums();
//LnNums =false;
}
}
private void setLineNums()
{
jTLineNums.setText("");
//jTLNums.setFont (new Font (fName, Font.PLAIN, fSize));
for (int i = 1; i <= sli; i++) {
jTLineNums.append(i+" \r\n");
}
//setFoc ();
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new LineNumberTest().setVisible(true);
}
});
}
public javax.swing.JPanel jPanel1;
public javax.swing.JScrollPane jScrollPane1;
public javax.swing.JTextArea jTLineNums;
public javax.swing.JTextArea jTxtArea1;
boolean LnNums = true;
int iLnNums, iSymBar, iCodeBar, iInv, sli, ci;
}