在java上找不到符号错误?

在java上找不到符号错误?,java,jtable,Java,Jtable,我得到这个错误: 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.*

我得到这个错误:

   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();    } 

}}
import java.awt.*;
导入javax.swing.*;
导入java.awt.*;
导入java.awt.event.*;
导入javax.swing.*;
导入java.io.*;
导入java.util.ArrayList;
导入javax.swing.table.*;
公共类benchtesting扩展了JFrame
{
私有JTabbedPane选项卡窗格;
私人JPanel小组1;
私人JPanel小组2;
私人JPanel小组3;
专用JTable表;
私有JScrollPane滚动窗格;
公共静态void main(字符串参数[])
{
benchtesting mainFrame=新的benchtesting();
mainFrame.setVisible(true);
}
公众席测验()
{
设置大小(280200);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
设置位置(1300280);
setTitle(“感光分析”);
JPanel-topPanel=新的JPanel();
setLayout(新的BorderLayout());
getContentPane().add(topPanel);
//创建选项卡页面
createPage1();
//createPage2();
//createPage3();
//创建选项卡式窗格
tabbedPane=新的JTabbedPane();
tabbedPane.addTab(“表”,panel1);
tabbedPane.addTab(“强度图”,面板2);
tabbedPane.addTab(“注释”,第3面板);
添加(选项卡窗格,BorderLayout.CENTER);
}
公共无效createPage1()
{
panel1=新的JPanel();
panel1.setLayout(新的BorderLayout());
浮点数据值_all[]=新浮点[400];
BufferedReader inputFile2=null;
BufferedReader inputFile=null;
试一试{
FileReader freader=newfilereader(“results.txt”);
inputFile2=新的BufferedReader(freader);
字符串读取=”;
字符串编号=”;

对于(int linenum=0;linenum),您不能使用基元类型的多维数组。您需要使用对象的多维数组

这是无效的:

float[][] arr;
这是有效的:

Float[][] arr;

没有匹配的构造函数期望第一个参数扩展
Object[][]
float
是一个基本类型,而不是扩展
Object
。它是一个基本类型的对象。请改用它。

float是一个基本类型,而不是一个对象。

请参阅。您可能需要创建一个
float[][]
(对象)

JTable类实际上没有接受二维浮点数组和常规字符串数组的构造函数。它有构造函数

JTable(对象[],字符串[])

所以,只要改变

float数据值[][]=新的浮点[1][10];

对象数据值[][]=新对象[1][10];


享受吧。说“谢谢”自动装箱…

JTable的构造函数需要参数
(Object[]]rowData,Object[]columnNames)
。因此调用该构造函数时,需要使用该类型的值进行调用

字符串[]
作为
对象[]
传递是没有问题的(因为
字符串
对象
,但将
浮点[][]
作为
对象[]
传递是无效的(因为
浮点
不是
对象

在Java5中,基本类型(如
float
)到包装器对象(如
float
)的“装箱”成为可能。这意味着
float a=0.1f;
是有效的。但是装箱不适用于数组

可能解决问题的最佳方法是将变量
dataValues
更改为type
Float[][]

JTable(Object[][] rowData, Object[] columnNames) 

构造一个JTable以显示二维数组rowData中的值,其中包含列名、列名


如前所述,构造函数接受对象,无法传递基本多维数组。

编译时是否出现此错误?运行时是否出现此错误?类路径是什么样子的?详细信息,我们需要它们。仅供参考:编译在第108行
table=new JTable(数据值、列名)失败;
。这根本不是真的。你可以做float[]]数组或int[]]很好。你把它和列表或集合混淆了。@Amir Raminfar:当然可以做float[][]数组。你不能用它来构造JTable。请阅读问题的上下文和一些透视图上的答案!感谢所有关于基本体/对象信息的人。我将float改为float,它可以工作。