Как получить доступ к массиву - Java
Формулировка задачи:
Друзья, нужна помощь.
Мне нужно получить доступ или как-то скопировать информацию из массива DataArray, доступ нужен здесь: onCalculateData. Спасибо за помощь)
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import sample.objects.Parser;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class Controller {
private int ClusterNumber;
private int ParameterNumber;
@FXML
private TextField clusterNTF;
@FXML
private TextField parameterNTF;
@FXML
private Button idGetData;
public void onEnteredData(ActionEvent event) {
if (!clusterNTF.getText().isEmpty()){
ClusterNumber = Integer.parseInt(clusterNTF.getText());
}
if (!parameterNTF.getText().isEmpty()){
ParameterNumber = Integer.parseInt(parameterNTF.getText());
}
}
public void onNewForm(ActionEvent actionEvent) throws IOException {
System.out.println(ClusterNumber + ParameterNumber);
Workbook wb_out = new HSSFWorkbook();
Sheet sheet = wb_out.createSheet("Данные");
Row row1 = sheet.createRow(1);
Cell cell_industry = row1.createCell(0);
cell_industry.setCellValue("Промышленность");
Row row0 = sheet.createRow(0);
Cell cell_parameter = row0.createCell(0);
cell_parameter.setCellValue("Параметр");
for(int cell_i = 1; cell_i < ParameterNumber + 1; cell_i++ ) {
Cell head = row0.createCell(cell_i);
head.setCellValue(cell_i + "-параметр");
}
for(int row_i = 2; row_i < ClusterNumber + 2; row_i++){
Row row = sheet.createRow(row_i);
Cell cell_out = row.createCell(0);
cell_out.setCellValue(row_i - 1 + " кластер");
}
FileOutputStream fos = new FileOutputStream("Формула.xls");
wb_out.write(fos);
fos.close();
wb_out.close();
}
public void onGetData(ActionEvent actionEvent) throws IOException {
System.out.println("Привет");
FileInputStream fileIn = new FileInputStream("Формула.xls");
Workbook wb = new HSSFWorkbook(fileIn);
double[][] DataArray = new double[ParameterNumber][ClusterNumber];
Sheet sheet = wb.getSheetAt(0);
for (int column_i = 1; column_i < ParameterNumber + 1; column_i++){
for (int row_i = 2; row_i < ClusterNumber + 2; row_i++) {
Row row = sheet.getRow(row_i);
Cell cell_in = row.getCell(column_i);
DataArray[column_i - 1][row_i - 2] = Double.parseDouble(Parser.getCellText(cell_in));
}
}
fileIn.close();
}
public void onClusterNTF(ActionEvent event) {
}
public void onParameterNTF(ActionEvent event) {
}
public void onCalculateData(ActionEvent event) {
}
}Решение задачи: «Как получить доступ к массиву»
textual
Листинг программы
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import sample.objects.Parser;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class Controller {
private int ClusterNumber;
private int ParameterNumber;
@FXML
private TextField clusterNTF;
@FXML
private TextField parameterNTF;
@FXML
private Button idGetData;
private double[][] DataArray;
public void onEnteredData(ActionEvent event) {
if (!clusterNTF.getText().isEmpty()){
ClusterNumber = Integer.parseInt(clusterNTF.getText());
}
if (!parameterNTF.getText().isEmpty()){
ParameterNumber = Integer.parseInt(parameterNTF.getText());
}
}
public void onNewForm(ActionEvent actionEvent) throws IOException {
System.out.println(ClusterNumber + ParameterNumber);
Workbook wb_out = new HSSFWorkbook();
Sheet sheet = wb_out.createSheet("Данные");
Row row1 = sheet.createRow(1);
Cell cell_industry = row1.createCell(0);
cell_industry.setCellValue("Промышленность");
Row row0 = sheet.createRow(0);
Cell cell_parameter = row0.createCell(0);
cell_parameter.setCellValue("Параметр");
for(int cell_i = 1; cell_i < ParameterNumber + 1; cell_i++ ) {
Cell head = row0.createCell(cell_i);
head.setCellValue(cell_i + "-параметр");
}
for(int row_i = 2; row_i < ClusterNumber + 2; row_i++){
Row row = sheet.createRow(row_i);
Cell cell_out = row.createCell(0);
cell_out.setCellValue(row_i - 1 + " кластер");
}
FileOutputStream fos = new FileOutputStream("Формула.xls");
wb_out.write(fos);
fos.close();
wb_out.close();
}
public void onGetData(ActionEvent actionEvent) throws IOException {
System.out.println("Привет");
FileInputStream fileIn = new FileInputStream("Формула.xls");
Workbook wb = new HSSFWorkbook(fileIn);
DataArray = new double[ParameterNumber][ClusterNumber];
Sheet sheet = wb.getSheetAt(0);
for (int column_i = 1; column_i < ParameterNumber + 1; column_i++){
for (int row_i = 2; row_i < ClusterNumber + 2; row_i++) {
Row row = sheet.getRow(row_i);
Cell cell_in = row.getCell(column_i);
DataArray[column_i - 1][row_i - 2] = Double.parseDouble(Parser.getCellText(cell_in));
}
}
fileIn.close();
}
public void onClusterNTF(ActionEvent event) {
}
public void onParameterNTF(ActionEvent event) {
}
public void onCalculateData(ActionEvent event) {
}
}