Я пытался сделать это в течение недели, я создал программу Java, используя javafx и scenebuilder. Я хотел иметь возможность открыть текстовый файл и создать таблицу, используя значения текстового файла.
Пока у меня есть:
- Создан открыватель файлов
- Создан массив, который извлекает правильные значения из текстового файла
Проблема, с которой я столкнулся, - это связать выбранный файл с созданным мной массивом, а затем создать динамическую таблицу, используя значения из массива. Я не уверен, с чего начать, чтобы сделать эту работу.
Выбор рабочего файла: https://gyazo.com/884b215545a7beebedfe7e9bfab064ed
Стол строителя сцены: https://gyazo.com/5637d10c7191710d24c2e2d42c53675e
Текстовый файл
john, smith, usa, California
sarah, parker, usa, Iowa
simon, davids, usa, Mississippi
Код для открытия файлов
public class SampleController {
private Button btn1;
public void Button1Action(ActionEvent event) {
{
FileChooser fileChooser = new FileChooser();
fileChooser.getExtensionFilters()
.addAll(
new FileChooser.ExtensionFilter("TXT files (*.TXT)", "*.TXT"),
new FileChooser.ExtensionFilter("txt files (*.txt)", "*.txt"));
File file = fileChooser.showOpenDialog(null);
if (file != null) {
try {
Files.lines(file.toPath()).forEach(System.out::println);
} catch (IOException ex) {
Logger.getLogger(JavaFXReadTextFile.class.getName())
.log(Level.SEVERE, null, ex);
}
}
}
}{
}
Массив для текстового файла
public class tableValue {
public static Scanner value;
{
try {
value = new Scanner(new File("data.txt"));
// code for number of lines start
File file =new File("data.txt");
if(file.exists()){
FileReader fr = new FileReader(file);
LineNumberReader lnr = new LineNumberReader(fr);
int linenumber = 0;
while (lnr.readLine() != null){
linenumber++;
}
lnr.close();
// code for number of lines end
String[][] valuezz = new String [linenumber][];
for (int i = 0; i < linenumber; i++) {
String line = value.nextLine();
String [] oneRowValue = line.split(",");
animalzz[i] = new String[oneRowValue.length];
for(int j=0; j<oneRowAnimals.length; j++) {
// Here you are storing values
valuezz[i][j] = oneRowValue[j];
}
}
System.out.println(valuezz[2][3]);
// Outputs Mississippi
}else{
System.out.println("File does not exists!");
}
}
catch(Exception e) {
System.out.println("could not find file");
}
}