【发布时间】:2014-11-29 05:13:54
【问题描述】:
我对 Java 还是很陌生,并且一直在尝试弄清楚如果现在选择了单选按钮,如何启用文本区域进行编辑。我一直在谷歌搜索和阅读各种论坛上的帖子,但是我不明白他们在做什么,也不知道如何在我的程序中这样做。
这是我目前所拥有的:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package labscheduler;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.application.*;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
*
* @author S02105032
*/
public class FXMLLabSchedulerDocController implements Initializable {
@FXML
private TextField txtRequestorName;
@FXML
private TextField txtRequestorEmail;
@FXML
private TextField txtEventTitle;
@FXML
private TextField txtNumParticipants;
@FXML
private TextField txtEventDate;
@FXML
private TextField txtStartTime;
@FXML
private TextField txtEndTime;
@FXML
private ToggleButton togStartTime;
@FXML
private ToggleButton togEndTime;
@FXML
private CheckBox chkPrinter;
@FXML
private RadioButton rbYes;
@FXML
private RadioButton rbNo;
@FXML
private TextArea txtareaMessage;
private String requestorName;
private String requestorEmail;
private String eventTitle;
private int participants = 0;
private Date eventDate;
private Date startTime;
private Date endTime;
private String printer;
private String message;
@FXML
private void handleBtnSubmit(ActionEvent event) {
requestorName = txtRequestorName.getText();
requestorEmail = txtRequestorEmail.getText();
eventTitle = txtEventTitle.getText();
participants = Integer.parseInt(txtNumParticipants.getText());
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/YY");
try {
eventDate = sdf.parse(txtEventDate.getText());
} catch (ParseException ex) {
System.out.println("invalid date format");
}
SimpleDateFormat stdf = new SimpleDateFormat("hh:mm");
try {
startTime = stdf.parse(txtStartTime.getText());
} catch (ParseException ex) {
System.out.println("invalid start time format");
}
SimpleDateFormat etdf = new SimpleDateFormat("hh:mm");
try {
endTime = etdf.parse(txtEndTime.getText());
} catch (ParseException ex) {
System.out.println("invalid end time format");
}
if(chkPrinter.isSelected()) {
printer = "printer requested";
}
else {
printer = "no printer needed";
}
if(rbYes.isSelected() && !rbNo.isSelected()) {
txtareaMessage.setEditable(true);
message = txtareaMessage.getText();
}
else {
txtareaMessage.setEditable(false);
message = "None";
}
}
@FXML
private void handleButtonClose(ActionEvent event) {
System.out.println("Application Close!");
Platform.exit();
}
@FXML
private void handleButtonClear(ActionEvent e) {
System.out.println("Clear All Fields!");
txtRequestorName.setText("");
txtRequestorEmail.setText("");
txtEventTitle.setText("");
txtNumParticipants.setText("");
txtEventDate.setText("");
txtStartTime.setText("");
txtEndTime.setText("");
chkPrinter.setSelected(false);
rbYes.setSelected(false);
rbNo.setSelected(false);
txtareaMessage.setText("");
}
// Radio Buttons need to be set to group so only one can be selected at a time
// If Radio Btn Yes is checked, enable txt area message, else disable
// Set Toggle Buttons to toggle between AM & PM
@Override
public void initialize(URL url, ResourceBundle rb) {
// TODO
}
}
当我选择任一单选按钮时,它似乎没有使文本区域可编辑。
【问题讨论】:
-
请去掉不相关的方法和字段,以减少无用代码的数量。另外,具体哪个方法分配给了哪个组件,仅仅通过查看是无法判断的(您也可以显示相关的 FXML 代码)。
标签: java javafx radio-button