The following code will add row header to JTable.
Tạo tiêu đề số cho các dòng dữ liệu của bảng JTable.
Mã nguồn - Source Code
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.AbstractListModel;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListCellRenderer;
import javax.swing.ListModel;
import javax.swing.UIManager;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;
class RowHeaderRenderer extends JLabel implements ListCellRenderer {
//customize row header.
RowHeaderRenderer(JTable table) {
JTableHeader header = table.getTableHeader();
setOpaque(true);
setBorder(UIManager.getBorder("TableHeader.cellBorder"));
setHorizontalAlignment(CENTER);
setForeground(header.getForeground());
setBackground(header.getBackground());
setFont(header.getFont());
}
public Component getListCellRendererComponent(JList list, Object value,
int index, boolean isSelected, boolean cellHasFocus) {
setText((value == null) ? "" : value.toString());
return this;
}
}
public class RowHeader extends JList {
public RowHeader(String[] headers, JTable table) {
super(headers);
setFixedCellWidth(50);
setFixedCellHeight(table.getRowHeight());
setCellRenderer(new RowHeaderRenderer(table));
}
//Row header example
public static void main(String[] args) {
JFrame frame = new JFrame("Row Header Example");
frame.setSize(300, 150);
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
//create a table
String headers[] = {"1", "2", "3", "4", "5", "6", "7", "8", "9"};
DefaultTableModel dm = new DefaultTableModel(headers.length, 9);
JTable table = new JTable(dm);
//table header
RowHeader rowHeader = new RowHeader(headers, table);
JScrollPane scroll = new JScrollPane(table);
scroll.setRowHeaderView(rowHeader);
frame.getContentPane().add(scroll, BorderLayout.CENTER);
frame.setVisible(true);
}
}
import java.awt.Component;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.AbstractListModel;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListCellRenderer;
import javax.swing.ListModel;
import javax.swing.UIManager;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;
class RowHeaderRenderer extends JLabel implements ListCellRenderer {
//customize row header.
RowHeaderRenderer(JTable table) {
JTableHeader header = table.getTableHeader();
setOpaque(true);
setBorder(UIManager.getBorder("TableHeader.cellBorder"));
setHorizontalAlignment(CENTER);
setForeground(header.getForeground());
setBackground(header.getBackground());
setFont(header.getFont());
}
public Component getListCellRendererComponent(JList list, Object value,
int index, boolean isSelected, boolean cellHasFocus) {
setText((value == null) ? "" : value.toString());
return this;
}
}
public class RowHeader extends JList {
public RowHeader(String[] headers, JTable table) {
super(headers);
setFixedCellWidth(50);
setFixedCellHeight(table.getRowHeight());
setCellRenderer(new RowHeaderRenderer(table));
}
//Row header example
public static void main(String[] args) {
JFrame frame = new JFrame("Row Header Example");
frame.setSize(300, 150);
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
//create a table
String headers[] = {"1", "2", "3", "4", "5", "6", "7", "8", "9"};
DefaultTableModel dm = new DefaultTableModel(headers.length, 9);
JTable table = new JTable(dm);
//table header
RowHeader rowHeader = new RowHeader(headers, table);
JScrollPane scroll = new JScrollPane(table);
scroll.setRowHeaderView(rowHeader);
frame.getContentPane().add(scroll, BorderLayout.CENTER);
frame.setVisible(true);
}
}
Kết quả - Result
Source: kidslovepc
No comments:
Post a Comment