I have following Java code:
JFrame frame = new JFrame();
frame.setTitle("Sudoku");
frame.setLocationRelativeTo(null);
frame.setSize(500, 500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(ruudustik.peaRuudustik()); //returns JPanel with textfields inside
frame.setVisible(true);
ruudustik.peaRuudustik function:
public static JPanel peaRuudustik() {
JPanel panel = new JPanel();
for (int i = 0; i < 81; i++) {
final JTextField ruut = new JTextField();
ruut.setHorizontalAlignment(JTextField.CENTER);
ruut.setSize(30, 30);
ruut.setColumns(1);
ruut.setName(Integer.toString(i));
panel.add(ruut);
}
return panel;
}
How can i change specific textfield value. Every textfield has unique name.
You could iterate over panel subcomponents, but I recommend another approach – use a
Map, for example:Then, access the components simply by
textFields.get(id);