我对Java仍然很陌生,并且一直在试图弄清楚如果现在选中一个单选按钮,如何启用文本区域进行编辑。我一直在各种论坛上使用Google和阅读帖子,但是我不明白他们在做什么或如何在我的程序中做到这一点。单选按钮启用文本区域
这是我到目前为止有:
/*
* 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代码)。 – Dici 2014-10-04 08:12:28