大佬教程收集整理的这篇文章主要介绍了具有标题行和列的JTable,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我认为你正在搜索Rowtable
import java.awt.*;
import java.awt.event.ActionEvent;
import javax.swing.*;
import javax.swing.UIManager.*;
import javax.swing.event.*;
import javax.swing.table.*;
public class JtableRowheader {
private JFrame frame = new JFrame("Jtable Rowheader");
private JscrollPane scrollPane;
private Jtable table;
private DefaulttableModel model;
private tablerowsorter<tableModel> sorter;
private Jtable headertable;
public JtableRowheader() {
table = new Jtable(4, 4);
for (int i = 0; i < table.getRowCount(); i++) {
table.SETVALueAt(i, i, 0);
}
sorter = new tablerowsorter<tableModel>(table.getModel());
table.setRowSorter(sorter);
model = new DefaulttableModel() {
private static final long serialVersionUID = 1L;
@OverrIDe
public int getcolumnCount() {
return 1;
}
@OverrIDe
public Boolean isCellEditable(int row, int col) {
return false;
}
@OverrIDe
public int getRowCount() {
return table.getRowCount();
}
@OverrIDe
public Class<?> getcolumnClass(int colNum) {
switch (colNum) {
case 0:
return String.class;
default:
return super.getcolumnClass(colNum);
}
}
};
headertable = new Jtable(model);
for (int i = 0; i < table.getRowCount(); i++) {
headertable.SETVALueAt("Row " + (i + 1), i, 0);
}
headertable.setShowGrID(false);
headertable.setautoResizeMode(Jtable.auto_RESIZE_OFF);
headertable.setPreferredScrollableVIEwportSize(new Dimension(50, 0));
headertable.getcolumnModel().getcolumn(0).setPreferreDWIDth(50);
headertable.getcolumnModel().getcolumn(0).setCellRenderer(new tableCellRenderer() {
@OverrIDe
public Component gettableCellRendererComponent(Jtable x, Object value, Boolean isSELEcted, Boolean hasFocus, int row, int column) {
Boolean SELEcted = table.getSELEctionModel().isSELEctedindex(row);
Component component = table.gettableheader().getDefaultRenderer().gettableCellRendererComponent(table, value, false, false, -1, -2);
((JLabel) component).setHorizontalAlignment(SwingConstants.CENTER);
if (SELEcted) {
component.setFont(component.getFont().deriveFont(Font.bolD));
component.setForeg@R_618_7060@color.red);
} else {
component.setFont(component.getFont().deriveFont(Font.PLAIN));
}
return component;
}
});
table.getRowSorter().addRowSorterListener(new RowSorterListener() {
@OverrIDe
public voID sorterChanged(RowSorterEvent E) {
model.firetableDataChanged();
}
});
table.getSELEctionModel().addListSELEctionListener(new ListSELEctionListener() {
@OverrIDe
public voID valueChanged(ListSELEctionEvent E) {
model.firetableRowsupdated(0, model.getRowCount() - 1);
}
});
scrollPane = new JscrollPane(tablE);
scrollPane.setRowheaderVIEw(headertablE);
table.setPreferredScrollableVIEwportSize(table.getPreferredSize());
frame.setDefaultCloSEOperation(JFrame.disPOSE_ON_CLOSE);
frame.add(scrollPanE);
frame.add(new Jbutton(new AbstractAction("Toggle filter") {
private static final long serialVersionUID = 1L;
private RowFilter<tableModel, Object> filter = new RowFilter<tableModel, Object>() {
@OverrIDe
public Boolean include(javax.swing.RowFilter.Entry<? extends tableModel, ? extends Object> entry) {
return ((number) entry.getValue(0)).intValue() % 2 == 0;
}
};
@OverrIDe
public voID actionPerformed(ActionEvent E) {
if (sorter.getRowFilter() != null) {
sorter.setRowFilter(null);
} else {
sorter.setRowFilter(filter);
}
}
}), borderLayout.soUTH);
frame.pack();
frame.setLOCATIOn(150, 150);
frame.setVisible(true);
}
public static voID main(String[] args) {
try {// UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassname());
for (LookAndFeelinfo info : UIManager.geTinstalledLookAndFeels()) {
if (info.getname().equals("Nimbus")) {
UIManager.setLookAndFeel(info.getClassname());
break;
}
}
} catch (Exception E) {
//e.printstacktrace();
}
EventQueue.invokelater(new Runnable() {
@OverrIDe
public voID run() {
JtableRowheader TesttableRowheader = new JtableRowheader();
}
});
}
}
我怎样才能有一个JTable的列和行都有标题?
像这样的东西:
+------+------+------+------+
|/\/\/\| col1 | col2 | col3 |
+------+------+------+------+
| row1 | | | |
+------+------+------+------+
| row2 | | | |
+------+------+------+------+
| row3 | | | |
+------+------+------+------+
谢谢
以上是大佬教程为你收集整理的具有标题行和列的JTable全部内容,希望文章能够帮你解决具有标题行和列的JTable所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。