【发布时间】:2017-05-10 02:24:26
【问题描述】:
当我单击切换按钮并输入文本然后按下相同的切换按钮时 - (开/关)将 textarea 文本保存在带有按钮 ID 的哈希图中,但例如当我按下切换按钮并将文本添加到textarea 并按下其他切换按钮而不是按下相同的按钮,该值不会添加到 hashmap 并且 textarea 文本会丢失。
这是我的代码,请指教
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());
}
}
【问题讨论】:
标签: java javafx hashmap toggle