更改 JTable 中的列 header
Change column header in a JTable
这是我现在的 table :
这是我可以更改列标题的代码:
table.getColumnModel().getColumn(0).setHeaderValue("Lecturersssss");
但是在我将鼠标悬停在 Lecturer
列 header 上之前,列标题不会改变。
即使我在这段代码后使用 table.repaint()
,它也不会改变。
你们知道我该如何解决这个问题吗?
谢谢。
JTableHeader header= table.getTableHeader();
TableColumnModel colMod = header.getColumnModel();
TableColumn tabCol = colMod.getColumn(0);
tabCol.setHeaderValue("Lecturersssss");
header.repaint();
Chalita 的建议应该 有效。这是健全性检查简短的演示程序。单击按钮更改列 header 文本。至少适用于我的环境...
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import javax.swing.table.*;
public class TTT extends JFrame {
JTable t;
public TTT() {
setLayout(new BorderLayout());
Object[] cols= new Object[]{"Col1","Col2","Col3"};
Object[][] vals= new Object[][]{{5,6,7}};
t = new JTable(vals,cols);
add(new JScrollPane(t),BorderLayout.CENTER);
JButton b = new JButton("Change Column Header");
b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
Random r = new Random();
Enumeration<TableColumn> e = t.getColumnModel().getColumns();
while( e.hasMoreElements( ) )
e.nextElement().setHeaderValue("Col"+Math.abs(r.nextInt()));
t.getTableHeader().repaint();
}
});
b.setPreferredSize(new Dimension(1,25));
add(b,BorderLayout.SOUTH);
setSize(500,150);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new TTT().setVisible(true);
}
});
}
}
这是我现在的 table :
这是我可以更改列标题的代码:
table.getColumnModel().getColumn(0).setHeaderValue("Lecturersssss");
但是在我将鼠标悬停在 Lecturer
列 header 上之前,列标题不会改变。
即使我在这段代码后使用 table.repaint()
,它也不会改变。
你们知道我该如何解决这个问题吗?
谢谢。
JTableHeader header= table.getTableHeader();
TableColumnModel colMod = header.getColumnModel();
TableColumn tabCol = colMod.getColumn(0);
tabCol.setHeaderValue("Lecturersssss");
header.repaint();
Chalita 的建议应该 有效。这是健全性检查简短的演示程序。单击按钮更改列 header 文本。至少适用于我的环境...
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import javax.swing.table.*;
public class TTT extends JFrame {
JTable t;
public TTT() {
setLayout(new BorderLayout());
Object[] cols= new Object[]{"Col1","Col2","Col3"};
Object[][] vals= new Object[][]{{5,6,7}};
t = new JTable(vals,cols);
add(new JScrollPane(t),BorderLayout.CENTER);
JButton b = new JButton("Change Column Header");
b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
Random r = new Random();
Enumeration<TableColumn> e = t.getColumnModel().getColumns();
while( e.hasMoreElements( ) )
e.nextElement().setHeaderValue("Col"+Math.abs(r.nextInt()));
t.getTableHeader().repaint();
}
});
b.setPreferredSize(new Dimension(1,25));
add(b,BorderLayout.SOUTH);
setSize(500,150);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new TTT().setVisible(true);
}
});
}
}