Java swing如何重写组件
我没找到好标题我想很抱歉 正如你们将看到的,我已经打过电话了Java swing如何重写组件,java,swing,jtable,layout-manager,swingutilities,Java,Swing,Jtable,Layout Manager,Swingutilities,我没找到好标题我想很抱歉 正如你们将看到的,我已经打过电话了 ssframe.add(new JScrollPane(table),BorderLayout.CENTER); 3次,如果我点击typeButton,那么unitButton会在屏幕上显示2个表格。我想有一个表,每个按钮点击,我怎么能做到这一点 private class searchListener implements ActionListener { @Override pub
ssframe.add(new JScrollPane(table),BorderLayout.CENTER);
3次,如果我点击typeButton,那么unitButton会在屏幕上显示2个表格。我想有一个表,每个按钮点击,我怎么能做到这一点
private class searchListener implements ActionListener
{
@Override
public void actionPerformed(ActionEvent e)
{
JButton clickd = (JButton)e.getSource();
if (clickd==typeButton)
{
try
{
SwingUtilities.updateComponentTreeUI(ssframe);
showTable1("type",typefield.getText());
ssframe.add(new JScrollPane(table),BorderLayout.CENTER);
}catch(Exception a)
{
a.printStackTrace();
JOptionPane.showMessageDialog(null,"Error Code = 0112");
}
}
else if (clickd==unitButton)
{
try
{
SwingUtilities.updateComponentTreeUI(frame);
showTable1("unit",unitfield.getText());
ssframe.add(new JScrollPane(table),BorderLayout.CENTER);
}catch(Exception a)
{
a.printStackTrace();
JOptionPane.showMessageDialog(null,"Error Code = 0112");
}
}
else if (clickd==priceButton)
{
try
{
SwingUtilities.updateComponentTreeUI(frame);
showTable3("price",Integer.parseInt(pricefield.getText()));
ssframe.add(new JScrollPane(table),BorderLayout.CENTER);
}catch(Exception a)
{
a.printStackTrace();
JOptionPane.showMessageDialog(null,"Error C0de = 0112");
}
}
}
编辑:这可能有助于解决我的问题:
model.setRowCount(0);
model.fireTableDataChanged();
有很多方法可以做到这一点
JScrollPane
的引用,并使用setViewportView
替换它的视图,提供要显示的表。JScrollPane
将保留在框架上JScrollPane
和JTable
将作为单个引用进行维护,然后您只需更改模型即可卡片布局
,这将允许您根据需要切换视图等等,你想干什么?请澄清您的目标与您看到的内容。为什么不简单地创建和显示一个JTable,然后如果需要交换或更改其TableModel,如果您希望它显示不同的数据(我猜您的目标是什么)?@我已经编辑。谢谢您的关注。try-catch块应该被分解(即使错误代码不同)你听说过但是表模型总是一样的,只有sql查询在改变吗?很抱歉,我是新手,对此不在行。所以不要做任何事情。只要更新表,如果你从来没有更改过,那么它就会自动更新表。@VivianMaya:正如我在评论中提到的。只需更改表模型持有的数据或交换表模型。看起来好像你的杀戮已经结束了。哦,天哪,我想我明白了,谢谢你的关注,我真的很棒。@VivianMaya:但是在你的下一个问题中,认真地多做一点努力来提供重要的细节。这个问题看起来有点匆忙。