在一个Jframe中点击一个按钮,触发调用另外一个Jframe中的函数,初始化Jtable,并显示数据,可是没有显示出来
我目前是需要在Jframe中点击一个按钮,执行如下代码
readform rf = new readform();
rf.initLoadTable( aMainCode_Buffer, mainsize);
rf.setVisible(true);
rf.repaint();
希望在readform 里的initLoadTable中初始化Jtable,并通过执行 rf.initLoadTable( aMainCode_Buffer, mainsize);带入的参数,将值aMainCode_Buffer显示在表格中,可是运行时没有显示。
如下为readform的全文code
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import javax.swing.JTable;
import javax.swing.SwingConstants;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.border.EtchedBorder;
public class readform extends JFrame{
private JFrame frmreadform;
private JTable table_load;
private JTable table_read;
private JScrollPane scrollpane1;
private JScrollPane scrollpane2;
private DefaultTableModel table_l;
private DefaultTableModel table_r;
public String[] columnNames_1 = {"","0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"};
public readform() {
setTitle("Read");
frmreadform = new JFrame();
frmreadform.setTitle("Read");
frmreadform.setResizable(false);
frmreadform.setBounds(100, 100, 567, 602);
frmreadform.getContentPane().setLayout(null);
frmreadform.setVisible(true);
frmreadform.setLocationRelativeTo(null);
getContentPane().setLayout(null);
table_read = new JTable();
table_read.setBounds(0, 0, 406, 122);
table_load = new JTable();
table_load.setToolTipText("LoadMain");
table_load.setRowSelectionAllowed(false);
table_load.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null));
table_load.setBounds(10, 10, 406, 122);
table_load.setBackground(Color.WHITE);
table_load.setVisible(true);
table_load.getTableHeader().setVisible(true);
table_load.getTableHeader().setReorderingAllowed(false);
DefaultTableCellRenderer tcrm= new DefaultTableCellRenderer(); //设置table 内容居中
tcrm.setHorizontalAlignment(SwingConstants.CENTER);
table_load.setDefaultRenderer(Object.class, tcrm);
table_load.getColumnModel().getColumn(0).setPreferredWidth(250); //set the first column width
JScrollPane scrollPane1 = new JScrollPane(table_load);
scrollPane1.setBounds(10, 10, 424, 291);
scrollPane1.setVisible(true);
scrollpane1.getVerticalScrollBar().setUnitIncrement(table_load.getRowHeight()*16);
getContentPane().add(scrollPane1);
JScrollPane scrollPane2 = new JScrollPane(table_read);
scrollPane2.setBounds(10, 319, 406, 129);
getContentPane().add(scrollPane2);
// TODO Auto-generated constructor stub
}
public void initLoadTable(byte col[],int size)
{
int size_r=0;
if(size%256==0)
size_r=size;
else
size_r=(size/256+1)*256;
String col_s[][] = new String[size_r/16][17];
for(int j=0;j<size;j++)
{
if(j%16 == 0)
{
col_s[j/16][j%16]=String.format("0x%05X",j/16);
col_s[j/16][j%16+1]=String.format("%2X",col[j]);
}
else
col_s[j/16][j%16+1]=String.format("%2X",col[j]);
}
if(size_r>size)
{
for(int k =size ; k<size_r; k++)
{
if(k%16 == 0)
{
col_s[k/16][k%16]=String.format("0x%05X",k/16);
col_s[k/16][k%16+1]=String.format("%2X",col[k]);
}
else
col_s[k/16][k%16+1]=String.format("%2X",0xFF);
}
}
table_l = new DefaultTableModel(col_s,columnNames_1);
table_load = new JTable(table_l){
public boolean isCellEditable(int rowIndex, int ColIndex){
return false;
}
};
for(int k=0;k<table_load.getColumnCount();k++)
table_load.getColumnModel().getColumn(k).setResizable(false);
scrollpane1.setVisible(true);
}
}
麻烦各位高手帮忙看下哪里出了问题导致Jtable没有显示