如何将选定文件放在JTable的特定列中 [英] How do I put the selected file in JTable in specific column

查看:61
本文介绍了如何将选定文件放在JTable的特定列中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我将文件名和大小放在表格中的代码

我只有两列名称和大小,但值重复。



公共类TableContent扩展JFrame {

final TableConstruct constructTable = new TableConstruct();

JMenuBar menuBar = new JMenuBar();

JMenu File = new JMenu(File);

JMenuItem openFile = new JMenuItem(Open File);



public static void main(String [] args)

{

EventQueue.invokeLater(new Runnable(){

public void run(){

new TableContent();

}

});

}



public TableContent(){

//创建一个空框架

setSize(500,500);

setTitle(创建表格);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setLocationRelativeTo(null);

setVisible (true);



//设置JMenuBar

setJMenuBar(menuBar);

menuBar.add(文件);

File.add(openFile);



//动作事件

openFile.addActionListener( new ActionListener(){

@Override

public void actionPerformed(ActionEvent event){

JFileChoo ser fileChooser = new JFileChooser();

fileChooser.setMultiSelectionEnabled(true);

int result = fileChooser.showOpenDialog(TableContent.this);



if(result == JFileChooser.APPROVE_OPTION)

{

文件[];

file = fileChooser.getSelectedFiles();

Vector addData = new Vector();



for(int i = 0; i< file.length; i ++)>

{



String name = file [i] .getName();

long bytes = file [i] .length();

long kilobytes =(bytes / 1024);



addData.add(name);

addData.add(kilobytes +KB);



constructTable.addRow(addData);



//System.out.println(file[i].getName()+kilobytes+\"KB);

}

}



}



});

/ /创建一个抽象表

JTable table = new JTable(constructTable);

//在ScrollPane上放置一个JTable

JScrollPane scrollPane = new JScrollPane(表);

getContentPane()。add(scrollPane,BorderLayout.CENTER);





}



class TableConstruct扩展AbstractTableModel {

Vector DataResult = new Vector() ;

String [] filenames;

private String [] columnNames = {Name,Size};



@Override

public int getColumnCount(){

返回2;

}



public void addRow(Vector addData){

DataResult.addElement(addData);

fireTableDataChanged();

}



@Override

public int getRowCount(){

返回DataResult.size();

}



@Override

public Object getValueAt(int row,int column){

返回DataResult.elementAt(行);

}



//使用JTable对象设置列名

public String getColumnName(int column)

{

return columnNames [column];

}

public void setValueAt(){



}



}



}

This is my code for putting the file name and size in the table
I have only two column the name and size but the value is repeating.

public class TableContent extends JFrame{
final TableConstruct constructTable = new TableConstruct();
JMenuBar menuBar = new JMenuBar();
JMenu File = new JMenu("File");
JMenuItem openFile = new JMenuItem("Open File");

public static void main(String []args)
{
EventQueue.invokeLater(new Runnable(){
public void run(){
new TableContent();
}
});
}

public TableContent() {
//create an empty frame
setSize(500, 500);
setTitle("Create Table");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);

//set a JMenuBar
setJMenuBar(menuBar);
menuBar.add(File);
File.add(openFile);

//action event
openFile.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent event) {
JFileChooser fileChooser= new JFileChooser();
fileChooser.setMultiSelectionEnabled(true);
int result = fileChooser.showOpenDialog(TableContent.this);

if(result==JFileChooser.APPROVE_OPTION)
{
File file[];
file = fileChooser.getSelectedFiles();
Vector addData = new Vector();

for(int i =0; i<file.length;i++)>
{

String name = file[i].getName();
long bytes = file[i].length();
long kilobytes = (bytes / 1024);

addData.add(name);
addData.add(kilobytes+"KB");

constructTable.addRow(addData);

//System.out.println(file[i].getName()+kilobytes+"KB");
}
}

}

});
//create an abstract table
JTable table = new JTable(constructTable);
//place a JTable on the ScrollPane
JScrollPane scrollPane = new JScrollPane(table);
getContentPane().add(scrollPane, BorderLayout.CENTER);


}

class TableConstruct extends AbstractTableModel{
Vector DataResult = new Vector();
String[] filenames;
private String[]columnNames ={"Name","Size"};

@Override
public int getColumnCount() {
return 2;
}

public void addRow(Vector addData) {
DataResult.addElement(addData);
fireTableDataChanged();
}

@Override
public int getRowCount() {
return DataResult.size();
}

@Override
public Object getValueAt(int row, int column) {
return DataResult.elementAt(row);
}

// use JTable object to set column names
public String getColumnName(int column)
{
return columnNames[column];
}
public void setValueAt(){

}

}

}

推荐答案

请不要在多个论坛中发布相同的问题。
Please do not post the same question in multiple forums.


这篇关于如何将选定文件放在JTable的特定列中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆