在一个Jframe中点击一个按钮,触发调用另外一个Jframe中的函数,初始化Jtable,并显示数据,可是没有显示出来

mgsoftabc 2018-05-04 03:01:09
我目前是需要在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没有显示
...全文
1597 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
mgsoftabc 2018-06-20
  • 打赏
  • 举报
回复
是的,这也是后来检查发现的。
Defonds 2018-05-10
  • 打赏
  • 举报
回复
引用 1 楼 mgsoftabc 的回复:
此问题已解决,此段代码没有语法错误,只是Jtable Jscrollpane的前后顺序有错。
要先有 Jscrollpane?
mgsoftabc 2018-05-08
  • 打赏
  • 举报
回复
此问题已解决,此段代码没有语法错误,只是Jtable Jscrollpane的前后顺序有错。

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧