上图
数据都填充进去了 但是 列名不显示 如何解? // 表格
private JTable ivtable; private JTable getTableDS() {
if (ivtable == null) {
String[] headers = { "XX编码", "XX编码", "XX编码", "XX编码", "XX编码",
"成本1", "成本2" };
Object[][] cellData = null;
DefaultTableModel model = new DefaultTableModel(cellData, headers) {
public boolean isCellEditable(int row, int column) {
return false;
}
};
ivtable = new JTable(model);
ivtable.setName("TableDS");
ivtable.setBounds(39, 115, 750, 290);
ivtable.setRowHeight(20);
ivtable.setSelectionMode(0);
JScrollPane scrollPane = new JScrollPane(ivtable);
}
return ivtable;
}
我也加了
JScrollPane scrollPane = new JScrollPane(ivtable);为什么 还不显示 列头?还有java的Jtable 有没有 多选 全选?求达人。
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.border.*;import java.awt.Dimension;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.Color;public class TableExample4 { public TableExample4() {
JFrame frame = new JFrame("Table");
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {System.exit(0);}}); // Take the dummy data from SwingSet.
final String[] names = {"First Name", "Last Name", "Favorite Color",
"Favorite Number", "Vegetarian"};
final Object[][] data = {
{"Mark", "Andrews", "Red", new Integer(2), Boolean.TRUE},
{"Tom", "Ball", "Blue", new Integer(99), Boolean.FALSE},
{"Arnaud", "Weber", "Green", new Integer(44), Boolean.FALSE}
}; // Create a model of the data.
TableModel dataModel = new AbstractTableModel() {
// These methods always need to be implemented.
public int getColumnCount() { return names.length; }
public int getRowCount() { return data.length;}
public Object getValueAt(int row, int col) {return data[row][col];} // The default implementations of these methods in
// AbstractTableModel would work, but we can refine them.
public String getColumnName(int column) {return names[column];}
public Class getColumnClass(int c) {return getValueAt(0, c).getClass();}
public boolean isCellEditable(int row, int col) {return true;}
public void setValueAt(Object aValue, int row, int column) {
System.out.println("Setting value to: " + aValue);
data[row][column] = aValue;
}
}; // Create the table
JTable tableView = new JTable(dataModel);
// Turn off auto-resizing so that we can set column sizes programmatically.
// In this mode, all columns will get their preferred widths, as set blow.
tableView.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); // Finish setting up the table.
JScrollPane scrollpane = new JScrollPane(tableView);
scrollpane.setBorder(new BevelBorder(BevelBorder.LOWERED));
scrollpane.setPreferredSize(new Dimension(430, 200));
frame.getContentPane().add(scrollpane);
frame.pack();
frame.setVisible(true);
} public static void main(String[] args) {
new TableExample4();
}
}
private JTable getTableDS();
即是说,你在将表格添加到容器的时候,你返回的是JTable,虽然你在方法里面有
JScrollPane scrollPane = new JScrollPane(ivtable);
但是你最终还是直接将表格添加到容器里面去了,而不是将包含有表格的scrollPane添加到容器里面,那么你上面这句代码就等于没写,所以仍然没有表头
DefaultTableModel model = (DefaultTableModel) ivtable.getModel();
model.setColumnIdentifiers(hearders);
答对了请给分,我急用!!!
headers是一个数组,也就是你的String[] headers = { "XX编码", "XX编码", "XX编码", "XX编码", "XX编码","成本1", "成本2" };
我放到JPanel里了 但是也不行。 JScrollPane scrollPane = new JScrollPane(ivtable);
scrollPane.setBorder(new BevelBorder(BevelBorder.LOWERED));
add(scrollPane);
String[] headers = { "公司编码", "部门编码", "存货编码", "客户编码", "结算方式编码",
"成本1", "成本2" };
Object[][] cellData = null;
DefaultTableModel model = new DefaultTableModel(cellData, headers) {
public boolean isCellEditable(int row, int column) {
return false;
}
};
ivtable = new JTable(model);我这么加 也一样把。
你的不行啊。.. 难道是 我继承的是JPanel的原因?extends UIPanel? private JTable getTableDS() {
if (ivtable == null) {
String[] headers = { "公司编码", "部门编码", "存货编码", "客户编码", "结算方式编码",
"成本1", "成本2" };
Object[][] cellData = null;
DefaultTableModel model = new DefaultTableModel(cellData, headers) {
public boolean isCellEditable(int row, int column) {
return false;
}
};
ivtable = new JTable(model);
ivtable.setName("TableDS");
ivtable.setBounds(39, 115, 750, 290);
ivtable.setRowHeight(20);
ivtable.setSelectionMode(0);
JScrollPane scrollPane = new JScrollPane(ivtable);
scrollPane.setBorder(new BevelBorder(BevelBorder.LOWERED));
add(scrollPane);
}
return ivtable;
}
class IvjEventHandler implements ActionListener { final ImportInvCostUI this$0; public void actionPerformed(ActionEvent e) {
// 浏览
if (e.getSource() == getBtnBrowseSrc()) {
onBtnBrowseSrc(e);
}
// 重置
if (e.getSource() == getBtnReset()) {
onBtnReset(e);
}
// 执行
if (e.getSource() == getBtnImport()) {
onBtnImport(e);
}
} IvjEventHandler() {
this$0 = ImportInvCostUI.this;
}
}
// 表格
private JTable ivtable;
private JTable getTableDS() {
if (ivtable == null) {
String[] headers = { "DD编码", "RR编码", "QQ编码", "FG编码", "DSSS编码",
"成本1", "成本2" };
Object[][] cellData = null;
DefaultTableModel model = new DefaultTableModel(cellData, headers) {
public boolean isCellEditable(int row, int column) {
return false;
}
};
ivtable = new JTable(model);
ivtable.setName("TableDS");
ivtable.setBounds(39, 115, 750, 290);
ivtable.setRowHeight(20);
ivtable.setSelectionMode(0);
JScrollPane scrollPane = new JScrollPane(ivtable);
scrollPane.setBorder(new BevelBorder(BevelBorder.LOWERED));
add(scrollPane);
}
return ivtable;
}
public ImportInvCostUI() {
initialize();
}
private void initialize() {
try {
setName("EAIDataTrafficUI");
setLayout(null);
setSize(738, 464);
add(getJPanel1(), getJPanel1().getName());
add(getJLabelSelect(), getJLabelSelect().getName());
add(getSrcFilePath(), getSrcFilePath().getName());
add(getBtnBrowseSrc(), getBtnBrowseSrc().getName());
add(getJLabelTitle(), getJLabelTitle().getName());
add(getBtnReset(), getBtnReset().getName());
add(getBtnImport(), getBtnImport().getName());
add(getTableDS(), getTableDS().getName());
} catch (Throwable ivjExc) {
handleException(ivjExc);
}
}
}
基本就这些了。
public class ImportInvCostUI extends UIPanel implements FocusListener {
class IvjEventHandler implements ActionListener { final ImportInvCostUI this$0; public void actionPerformed(ActionEvent e) {
// 浏览
if (e.getSource() == getBtnBrowseSrc()) {
onBtnBrowseSrc(e);
}
// 重置
if (e.getSource() == getBtnReset()) {
onBtnReset(e);
}
// 执行
if (e.getSource() == getBtnImport()) {
onBtnImport(e);
}
} IvjEventHandler() {
this$0 = ImportInvCostUI.this;
}
}
// 表格
private JTable ivtable;
private JTable getTableDS() {
if (ivtable == null) {
String[] headers = { "DD编码 ", "RR编码 ", "QQ编码 ", "FG编码 ", "DSSS编码 ",
"成本1 ", "成本2 " };
Object[][] cellData = null;
DefaultTableModel model = new DefaultTableModel(cellData, headers) {
public boolean isCellEditable(int row, int column) {
return false;
}
};
ivtable = new JTable(model);
ivtable.setName( "TableDS ");
ivtable.setBounds(39, 115, 750, 290);
ivtable.setRowHeight(20);
ivtable.setSelectionMode(0); JScrollPane scrollPane = new JScrollPane(ivtable);
scrollPane.setBorder(new BevelBorder(BevelBorder.LOWERED));
add(scrollPane);
}
return ivtable;
}
public ImportInvCostUI() {
initialize();
}
private void initialize() {
try {
setName( "EAIDataTrafficUI ");
setLayout(null);
setSize(738, 464);
add(getJPanel1(), getJPanel1().getName());
add(getJLabelSelect(), getJLabelSelect().getName());
add(getSrcFilePath(), getSrcFilePath().getName());
add(getBtnBrowseSrc(), getBtnBrowseSrc().getName());
add(getJLabelTitle(), getJLabelTitle().getName());
add(getBtnReset(), getBtnReset().getName());
add(getBtnImport(), getBtnImport().getName());
add(getTableDS(), getTableDS().getName());
} catch (Throwable ivjExc) {
handleException(ivjExc);
}
}
}
发现神奇的地方了。。
不加上 setLayout(null); 就能出来了
但是加上就不行了。
package nc.ui.rt.rt01;import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.io.File;import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.table.DefaultTableModel;public class ImportInvCostUI extends JPanel implements FocusListener {
class IvjEventHandler implements ActionListener { final ImportInvCostUI this$0; public void actionPerformed(ActionEvent e) { } IvjEventHandler() {
this$0 = ImportInvCostUI.this;
}
} IvjEventHandler ivjEventHandler; private JLabel ivjJLabelSelect; private JLabel ivjJLabelTitle; private JPanel ivjJPanel1; private JTextArea ivjSrcFilePath; private JButton ivjBtnReset; private JButton ivjBtnBrowseSrc; private JButton ivjBtnImport; private String m_sysDate; private File file = null;
// 表格
private JTable ivtable;
// 滚动条
private JScrollPane scrollPane; // 接口实现
// private IRt01 irt01;
// private IRt01 getFn_itf() {
// if (irt01 == null)
// irt01 = (IRt01) NCLocator.getInstance().lookup(
// IRt01.class.getName());
// return irt01;
// }
public ImportInvCostUI() { ivjBtnBrowseSrc = null;
ivjEventHandler = new IvjEventHandler();
ivjJLabelSelect = null;
ivjJLabelTitle = null;
ivjJPanel1 = null;
ivjSrcFilePath = null;
ivjBtnReset = null;
ivjBtnImport = null;
m_sysDate = null;
ivtable = null;
scrollPane = null;
initialize();
// System.out.println((new StringBJlder("<<<<<<<<<<<<<<<<<")).append(
// m_sysDate).append(">>>>>>>>>>>>>>").toString());
} private JTable getTableDS() {
if (ivtable == null) {
String[] headers = { "公司编码", "部门编码", "存货编码", "客户编码", "结算方式编码",
"成本1", "成本2" };
Object[][] cellData = null;
DefaultTableModel model = new DefaultTableModel(cellData, headers) {
public boolean isCellEditable(int row, int column) {
return false;
}
};
ivtable = new JTable(model);
ivtable.setName("TableDS");
ivtable.setBounds(39, 115, 750, 290);
ivtable.setRowHeight(20);
ivtable.setSelectionMode(0);
// ivtable.setPreferredScrollableViewportSize(new
// Dimension(550,30));
}
return ivtable;
} private JButton getBtnBrowseSrc() {
if (ivjBtnBrowseSrc == null) {
try {
ivjBtnBrowseSrc = new JButton();
ivjBtnBrowseSrc.setName("BtnBrowseSrc");
ivjBtnBrowseSrc.setText("浏览");
ivjBtnBrowseSrc.setBounds(617, 82, 80, 22);
} catch (Throwable ivjExc) {
handleException(ivjExc);
}
}
return ivjBtnBrowseSrc;
} private JLabel getJLabelSelect() {
if (ivjJLabelSelect == null) {
try {
ivjJLabelSelect = new JLabel();
ivjJLabelSelect.setName("JLabelSelect");
ivjJLabelSelect.setFont(new Font("dialog", 1, 12));
ivjJLabelSelect.setText("选择文件");
ivjJLabelSelect.setBounds(39, 78, 69, 19);
ivjJLabelSelect.setForeground(new Color(102, 102, 153));
} catch (Throwable ivjExc) {
handleException(ivjExc);
}
}
return ivjJLabelSelect;
} private JLabel getJLabelTitle() {
if (ivjJLabelTitle == null) {
try {
ivjJLabelTitle = new JLabel();
ivjJLabelTitle.setName("JLabelTitle");
ivjJLabelTitle.setFont(new Font("dialog", 1, 22));
ivjJLabelTitle.setText("上传Excel存货成本");
ivjJLabelTitle.setBounds(248, 44, 307, 21);
} catch (Throwable ivjExc) {
handleException(ivjExc);
}
}
return ivjJLabelTitle;
} private JPanel getJPanel1() {
if (ivjJPanel1 == null) {
try {
ivjJPanel1 = new JPanel();
ivjJPanel1.setName("JPanel1");
ivjJPanel1.setLayout(null);
ivjJPanel1.setBounds(-10, -1, 784, 1);
} catch (Throwable ivjExc) {
handleException(ivjExc);
}
}
return ivjJPanel1;
} private JTextArea getSrcFilePath() {
if (ivjSrcFilePath == null) {
try {
ivjSrcFilePath = new JTextArea();
ivjSrcFilePath.setName("srcFilePath");
ivjSrcFilePath.setBounds(116, 80, 475, 24);
} catch (Throwable ivjExc) {
handleException(ivjExc);
}
}
return ivjSrcFilePath;
} public String getTitle() {
return "存货成本导入";
} private void handleException(Throwable exception) {
System.out.println("--------- 未捕捉到的异常 ---------");
exception.printStackTrace(System.out);
} // 初始化监听
private void initConnections() throws Exception {
getBtnBrowseSrc().addActionListener(ivjEventHandler);
getBtnReset().addActionListener(ivjEventHandler);
getBtnImport().addActionListener(ivjEventHandler);
} private void initialize() {
try {
setName("EAIDataTrafficJ");
setLayout(null);
setSize(839, 464);
add(getJPanel1(), getJPanel1().getName());
add(getJLabelSelect(), getJLabelSelect().getName());
add(getSrcFilePath(), getSrcFilePath().getName());
add(getBtnBrowseSrc(), getBtnBrowseSrc().getName());
add(getJLabelTitle(), getJLabelTitle().getName());
add(getBtnReset(), getBtnReset().getName());
add(getBtnImport(), getBtnImport().getName());
add(getTableDS(), getTableDS().getName());
add(getJScrollPane(), getJScrollPane().getName());
initConnections();
} catch (Throwable ivjExc) {
handleException(ivjExc);
}
} private JScrollPane getJScrollPane() {
if (scrollPane == null) {
scrollPane = new JScrollPane(getTableDS());
// scrollPane.getViewport().add(ivtable);
// scrollPane.setBorder(new BevelBorder(BevelBorder.));
scrollPane.setName("scrollPane");
}
return scrollPane;
} // public static void main(String args[]) {
// try {
// JFrame frame = new JFrame();
// importsaleorderJ EAIDataTrafficJ = new importsaleorderJ();
// frame.setContentPane(EAIDataTrafficJ);
// frame.setSize(EAIDataTrafficJ.getSize());
// frame.addWindowListener(new WindowAdapter() {
//
// public void windowClosing(WindowEvent e) {
// System.exit(0);
// }
//
// });
// frame.show();
// Insets insets = frame.getInsets();
// frame.setSize(frame.getWidth() + insets.left + insets.right, frame
// .getHeight()
// + insets.top + insets.bottom);
// frame.setVisible(true);
// } catch (Throwable exception) {
// System.err.println("nc.J.pub.ToftPanel 的 main() 中发生异常");
// exception.printStackTrace(System.out);
// }
// } private JPanel getClientJ() {
return this;
} private JButton getBtnReset() {
if (ivjBtnReset == null) {
try {
ivjBtnReset = new JButton();
ivjBtnReset.setName("BtnReset");
ivjBtnReset.setText("重置");
ivjBtnReset.setBounds(137, 469, 116, 25);
} catch (Throwable ivjExc) {
handleException(ivjExc);
}
}
return ivjBtnReset;
} private JButton getBtnImport() {
if (ivjBtnImport == null) {
try {
ivjBtnImport = new JButton();
ivjBtnImport.setName("BtnImport");
ivjBtnImport.setText("导入");
ivjBtnImport.setBounds(504, 469, 116, 25);
} catch (Throwable ivjExc) {
handleException(ivjExc);
}
}
return ivjBtnImport;
} /**
* Excel文件过滤类
*
* @author jieely
*
*/
class ExcelFileFilter extends javax.swing.filechooser.FileFilter {
public boolean accept(File file) {
if (file.isDirectory()
|| file.getPath().toLowerCase().endsWith(".xls"))
return true;
else
return false;
} public String getDescription() {
return "数据文件(.xls)";
}
} public void focusGained(FocusEvent focusevent) {
} public void focusLost(FocusEvent focusevent) {
}
}