如何将选定文件放在JTable的特定列中 [英] How do I put the selected file in JTable in specific column
问题描述
这是我将文件名和大小放在表格中的代码
我只有两列名称和大小,但值重复。
公共类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屋!