如何在JTable顶部添加新行并更改Java中新插入行的颜色?
我正在处理一个模块中的项目,我必须在数据网格中显示数据(为此我使用JTable)。问题是,当我在JTable中插入数据时,它将填充到表格底部,我想在表格顶部显示新行。请指导我完成这项任务,任何帮助将不胜感激。我正在使用NetBeans进行开发。如何在JTable顶部添加新行并更改Java中新插入行的颜色?
这里是我的代码来填充数据:
public void run() {
try {
FileWriter out = new FileWriter("test.txt");
BufferedWriter bufWriter = new BufferedWriter(out);
int nb = input.readInt();
System.out.println("Read Length"+ nb);
byte[] digit = new byte[nb];
System.out.println("Writing.......");
for(int i = 0; i < nb; i++)
digit[i] = input.readByte();
String st = new String(digit);
bufWriter.append(st);
bufWriter.close();
out.close();
System.out.println ("receive from : " +
clientSocket.getInetAddress() + ":" +
clientSocket.getPort() + " message - " + st);
DefaultTableModel table = (DefaultTableModel)_table.getModel();
File file = new File("test.txt");
Scanner f = new Scanner(file);
String line = null;
String[] str = null;
while(f.hasNext()){
line = f.nextLine().replace('|', ',');
str = line.split(",");
table.addRow(str);
_table.setBackground(Color.red);
}
output.writeInt(st.length());
output.writeBytes(st);
}
catch(EOFException e) {
System.out.println("EOF:"+e.getMessage()); }
catch(IOException e) {
System.out.println("IO:"+e.getMessage());}
finally {
try {
clientSocket.close();
}
catch (IOException e){/*close failed*/}
}
}
在此先感谢。
的问题是,当我插入在JTable中的数据,它能够在表的底部填充,我想在餐桌上
table.addRow(str);
的顶部,以显示新的行
其实你并没有插入一行,你正在添加一行。尝试阅读DefaultTableModel
API的方法,该方法允许您在模型中的指定位置“插入”一行,在您的情况下该行将为第0行。
非常感谢,我只是使用'insertRow()'来填充数据,它工作得很完美。请帮助我改变新插入的行的颜色,这是我必须做的最后一件事,我没有太多时间。 –
@MDaimKhan,很高兴帮助。不要忘记“接受”这个问题,让人们知道问题已经解决。 – camickr
'请帮我改变新插入的行的颜色 - 这个要求没有意义。为什么新插入的行需要单独的颜色。如果按两次按钮插入行,会发生什么情况?每个插入组是否获得不同的颜色?前一组是否重置?没有足够的信息来提供答案。用更多细节创建一个单独的问题。每个帖子只应提出一个问题。 “我没有太多时间” - 这与问题无关。时间管理是你的问题。你的问题没有比其他任何问题更重要。 – camickr
您不妨考虑使用自己的“TableModel”比使用默认的一个。 –
好的,让我检查一下这个教程。 –