gpt4 book ai didi

使用 Swing 时的 Java 方法 - 是否可以在同一类中的另一个事件方法中调用事件方法?

转载 作者:行者123 更新时间:2023-12-02 10:51:31 25 4
gpt4 key购买 nike

所以我是java新手,现在正在使用swing。我有一个方法(第一个方法),当我输入特定的 jField 并释放键时,它会执行一些代码。我也有 jCheckBox,所以当我勾选或取消勾选复选框时,它会执行一些操作,这是第二种方法。

所以我希望当我勾选或取消勾选复选框时使其调用我的第一个方法,并且第一个方法必须执行它的代码。但似乎我有问题,由于某种原因我无法调用这个方法。

Part of first method :

   private void bruttoTextFieldKeyReleased(java.awt.event.KeyEvent evt) {  
//code
}

Second method trying to call first method :

private void pensionCheckBoxStateChanged(javax.swing.event.ChangeEventevt) {                                             
bruttoTextFieldKeyReleased();
}

Those methods were created with this menu

这是提示,但我不确定我需要做什么,它需要一些 KeyEvent?我只想从另一种方法启动一种方法,不输入任何值也不返回。

Error Hint

最佳答案

对 Luvy 的评论进行一些扩展,并使用您的代码将其转换为答案。

现在,第一个方法采用 KeyEvent,如下所示:

private void bruttoTextFieldKeyReleased(java.awt.event.KeyEvent evt) {
double salaryBrutto = Double.parseDouble(bruttoTextField.getText());

double taxPensRound;
if (pensionCheckBox.isSelected()) {
double taxPens = salaryBrutto * TAX_PENS;
//more code

从屏幕截图来看,您很可能是从 GUI 构建器自动创建的,并且没有使用 KeyEvent evt 参数。如果不传入 KeyEvent,则无法调用此方法,这就是pensionCheckBoxStateChanged 无法调用它的原因。

Luvy 的建议是从 bruttoTextFieldKeyReleased 按钮中创建一个新方法,因此您将有两种方法:

private void bruttoTextFieldKeyReleased(java.awt.event.KeyEvent evt) {
calculatePensionInformation();
//maybe do something with evt later on
}

private void calculatePensionInformation() {
double salaryBrutto = Double.parseDouble(bruttoTextField.getText());

double taxPensRound;
if (pensionCheckBox.isSelected()) {
double taxPens = salaryBrutto * TAX_PENS;
//more code

}

此时,您可以将现有的第二种方法更改为:

private void pensionCheckBoxStateChanged(javax.swing.event.ChangeEventevt) {                                             
calculatePensionInformation();
}

它会按预期工作,因为calculatePensionInformation不需要参数,并且您不传入任何参数。

关于使用 Swing 时的 Java 方法 - 是否可以在同一类中的另一个事件方法中调用事件方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52154010/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com