トグルボタンをクリックしてテキストを入力してから同じトグルボタンを押すと、ボタンエリアでハッシュマップにテキストエリアのテキストが保存されます。私はトグルボタンを押して、テキストエリアにテキストを追加し、他のトグルボタンを押すのではなく、値がハッシュマップに追加されず、テキストエリアが失われます。ここ各トグルボタンのハッシュマップにテキストエリアの値を保存するjavafx
は私のコードで、
Node componentsPane;
int x = 14, y = 0;
ToggleGroup group = new ToggleGroup();
Integer id = 1;
String temp;
String tempmessageText = null;
public void initialize() throws SQLException {
componentsPane = splitPane.getItems().get(1);
final Statement stmt = null;
String m = "";
final String query = "select username from chatuser ";
final Connection conn = null;
final Connection _connection = DriverManager.getConnection("jdbc:postgresql://IP/postgres", "postgres",
"password");
@SuppressWarnings("resource")
final PreparedStatement _stmt = _connection.prepareStatement(query);
final ResultSet res = _stmt.executeQuery();
while (res.next()) {
m = res.getString("username");
final ToggleButton btn = new ToggleButton();
btn.setLayoutX(x);
btn.setLayoutY(y + 180);
btn.setText(m);
btn.setId(id.toString());
btn.setToggleGroup(group);
splitPaneLeft.getChildren().add(btn);
btn.setOnAction(new EventHandler<ActionEvent>() {
HashMap<Integer, String> hmap = new HashMap<Integer, String>();
@Override
public void handle(final ActionEvent event) {
System.out.println(btn.getId());
if (btn.isSelected()) {
temp = btn.getId();
System.out.println("yes");
splitPane.getItems().remove(componentsPane);
splitPane.getItems().add(1, componentsPane);
smsBox.setText(hmap.get(Integer.parseInt(temp)));
Main.getPrimaryStage().setMaxWidth(840);
Main.getPrimaryStage().setWidth(810);
Main.getPrimaryStage().setMinWidth(400);
} else {
System.out.println("no");
splitPane.getItems().remove(componentsPane);
Main.getPrimaryStage().setResizable(false);
Main.getPrimaryStage().setMaxWidth(400);
System.out.println(smsBox.getText());
hmap.put(Integer.parseInt(btn.getId()), smsBox.getText());
}
}
});
y += 35;
id++;
}
}
boolean k;
@FXML
private void func() {
System.out.println(group.getSelectedToggle());
if (!group.getSelectedToggle().equals(null)) {
splitPane.getItems().add(1, componentsPane);
splitPane.setDividerPosition(1, 0.1);
Main.getPrimaryStage().setMaxWidth(840);
Main.getPrimaryStage().setWidth(810);
Main.getPrimaryStage().setMinWidth(400);
}
else {
System.out.println("false");
System.out.println(splitPane.getItems());
System.out.println(Main.getPrimaryStage().getHeight());
}
}