Как записать массив в таблицу что бы в дальнейшим с ним работать?
Помогите с задачей. Нужно создать кнопку, которая считает данные(массив). После чего он изобразится в таблице. Плюс должно вывести номер строки, в которой все элементы равны и номер столбца, в которого все элементы четные.
Файл:
2 2 2
4 5 4
7 8 6
Я создал окно с кнопкой, считываю файл(вроде правильно). Вывожу на экран. Но не знаю как занести в таблицу так как впервые с этим работаю.
В коде я создал массив и занес в таблицу как пример:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
import javax.swing.*;
public class LabSixSecond extends JPanel implements ActionListener {
private static final long serialVersionUID = 1L;
private JFrame wnd;
private float w, q, p;
private int i;
private JButton start, stop, apply;
private JLabel nl, wl;
private JTextField ntf, wtf;
JTextArea txaSome = new JTextArea();
JButton btnSome = new JButton("Load file");
Comparable[] A=new Comparable[i];
final String THE_FILE = "D:\\IntelliJ IDEA Community Edition 2019.3.2\\works\\src\\Array6.txt"; // адрес к читаемому файлу
private static List<Character> chars = new ArrayList<Character>();
public static void main(String[] args) {
new LabSixSecond();
}
private Object[][] array = new String[][] {{ "2" , "2", "2" },
{ "3" , "4", "5" },
{ "7", "6" , "8" }};
private Object[] headers = new String[] {"x0", "x1", "x2"};
LabSixSecond(){
wnd = new JFrame("Array");
wnd.setLayout(null);
wnd.setSize(500, 500);
wnd.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 50, 300, 300);
btnSome.addActionListener(new ActionListener() { //обработчик события
public void actionPerformed(ActionEvent ae) {
File file = new File(THE_FILE);
//-------------------------------------------------
try(FileReader reader = new FileReader(file))
{
char[] buf = new char[256];
int c;
while((c = reader.read(buf))>0){
if(c < 256){
buf = Arrays.copyOf(buf, c);
}
System.out.print(buf);
txaSome.setText(String.valueOf(buf));
}
}
catch(IOException ex) {
System.out.println(ex.getMessage());
}
}
}
);
JTable table1 = new JTable(array,headers);
Box contents = new Box(BoxLayout.Y_AXIS);
contents.add(new JScrollPane(table1));
wnd.setContentPane(contents);
setSize(500, 400);
wnd.add(table1);
wnd.add(txaSome);
wnd.add(btnSome);
setLayout(new FlowLayout());
wnd.setVisible(true);
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(Color.WHITE);
g2d.fillRect(0, 0, getWidth(), getHeight());
}
@Override
public void actionPerformed(ActionEvent e) {
}
}
Так же у меня фрагменты кода который я написал для дальнейших действий с массивом:
for (int i = 0; i < myArray.length; i++) {
k = 1;
for (int j = 0; j < myArray[i].length - 1; j++) {
if (myArray[i][j] == myArray[i][j + 1]) {
k += 1;
if (k == myArray[i].length) {
System.out.println("element:" + myArray[i][j]);
System.out.println("# of row:" + i);
}
}
}
}
for (int i = 0; i < myArray.length; i++) {
k = 1;
for (int j = 0; j < myArray[i].length; j++)
if (myArray[j][i] % 2 != 0)
k = 0;
if (k == 1) {
System.out.println("# of column:" + i);
}
}
Помогите разобраться и решить эту задачу пожалуйста.