我收到这个错误:
symbol : constructor JTable(float[][],java.lang.String[])
location: class javax.swing.JTable
table = new JTable(dataValues, columnNames );
下面是代码
import java.awt.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.util.ArrayList;
import javax.swing.table.*;
public class benchtesting extends JFrame
{
private JTabbedPane tabbedPane;
private JPanel panel1;
private JPanel panel2;
private JPanel panel3;
private JTable table;
private JScrollPane scrollPane;
public static void main( String args[] )
{
benchtesting mainFrame = new benchtesting();
mainFrame.setVisible( true );
}
public benchtesting()
{
setSize(280,200);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setLocation(1300,280);
setTitle("Photoreceptor Analysis");
JPanel topPanel = new JPanel();
topPanel.setLayout( new BorderLayout() );
getContentPane().add( topPanel );
// Create the tab pages
createPage1();
// createPage2();
// createPage3();
// Create a tabbed pane
tabbedPane = new JTabbedPane();
tabbedPane.addTab( "Table", panel1 );
tabbedPane.addTab( "Intensity Map", panel2 );
tabbedPane.addTab( "Notes", panel3 );
topPanel.add( tabbedPane, BorderLayout.CENTER );
}
public void createPage1()
{
panel1 = new JPanel();
panel1.setLayout( new BorderLayout() );
float dataValues_all[]= new float[400];
BufferedReader inputFile2=null;
BufferedReader inputFile=null;
try {
FileReader freader =new FileReader("results.txt");
inputFile2 = new BufferedReader(freader);
String read = "";
String number ="";
for (int linenum=0; linenum<400; linenum++) {
read = inputFile2.readLine();
if(read != null && read.startsWith("D"))
{
number = read.substring(9,15);
float real_numbers = Float.parseFloat(number);
real_numbers= real_numbers*2817217;
System.out.println(Math.round(real_numbers)+" cells/mm^2");
dataValues_all[linenum] = real_numbers;
}
}
// System.out.println("hmm "+dataValues_all[398]);
String columnNames[] = {"1","2","3","4","5","6","7","8","9","10"};
float dataValues[][]= new float [1][10]; //1 row, 10 coloumns
dataValues[0][0] = dataValues_all[2];
dataValues[0][1] = dataValues_all[6];
dataValues[0][2] = dataValues_all[10];
dataValues[0][3] = dataValues_all[14];
dataValues[0][4] = dataValues_all[18];
dataValues[0][5] = dataValues_all[22];
dataValues[0][6] = dataValues_all[26];
dataValues[0][7] = dataValues_all[30];
dataValues[0][8] = dataValues_all[34];
dataValues[0][9] = dataValues_all[38];
table = new JTable(dataValues, columnNames );
scrollPane = new JScrollPane(table);
panel1.add( scrollPane, BorderLayout.CENTER );
} catch( Exception y ) { y.printStackTrace(); }
}}
最佳答案
JTable
的构造函数需要参数 (Object[][] rowData, Object[] columnNames)
。因此,在调用该构造函数时,您需要使用该类型的值来调用它。
将 String[]
作为 Object[]
传递是没有问题的(因为 String
是一个 Object
,但是将 float[][]
作为 Object[][]
传递是无效的(因为 float
不是 对象
)。
在 Java5 中,原始类型(如 float
)“装箱”到包装对象(如 Float
)成为可能。这意味着 Float a = 0.1f;
是有效的。但是装箱不适用于数组。
对于您的问题,最好的解决方案可能是将变量 dataValues
更改为类型 Float[][]
。
关于java - 在 Java 上找不到符号错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4683453/