在Griffon in Action手册的3.6.1段中有一个关于mortageCalc应用程序的练习。
环境:
我有MortgageCalView:
package mortgagecal
application(title:'Mortgage Calculator', pack:true, locationByPlatform:true)
{
panel(border: emptyBorder(6)) {
gridLayout(rows:4, columns:2, hgap:6, vgap:6)
label('Principal:')
textField(text: bind(target:model, 'principal',
value:'$200,000',
validator: model.validatePrincipal,
converter: model.convertPrincipal))
label('Interest Rate:')
textField(text: bind(target:model, 'monthlyRate',
value:'6.5%',
validator: model.validateRate,
converter: model.convertRate))
label('Term:')
textField(text: bind(target:model, 'months',
value:'30',
validator: model.validateTerm,
converter: model.convertTerm))
label('Monthly Payment (P&I):')
textField(editable:false,
text: bind(source: model, sourceProperty: 'payment',
sourceEvent: 'propertyChange',
converter: model.convertPayment))
}
}
和MortgageCalModel:
package mortgagecal
import groovy.beans.Bindable
import java.text.NumberFormat
import java.text.DecimalFormat
@Bindable
class MortgageCalModel {
float principal
float monthlyRate
float months
float getPayment() {
return principal * monthlyRate /
(1-Math.pow(1/(1+monthlyRate),months))
}
private currencyFormat = NumberFormat.currencyInstance
private percentFormat = new DecimalFormat('0.00%')
def validatePrincipal = {
try {
float principal = currencyFormat.parse(it)
return principal > 0
} catch (Exception e) {
return false
}
}
def convertPrincipal = currencyFormat.&parse
def validateRate = {
try {
float rate = percentFormat.parse(it)
return rate > 0 && rate < 0.30
} catch (Exception e) {
return false
}
}
def convertRate = {
return percentFormat.parse(it) / 12
}
def validateTerm = {
try {
def term = Float.parseFloat(it)
return term > 0 && term < 100
} catch (Exception e) {
return false
}
}
def convertTerm = {
return Float.parseFloat(it) * 12
}
def convertPayment = {
return currencyFormat.format(it)
}
}
Groovy.lang.MissingMethodException:方法的无签名:mortgageCal.MortgageCalview.application()适用于参数类型:(java.util.LinkedHashMap,MortgageCal.MortgageCalview.MortgageCalview.MortgageCalview.$_run_closure1)值:[[title:Mortgage Calculator,pack:true,locationbyPlatform:true],...]Groovy.lang.MissingMethodException:方法的无签名:run(MortgageCalview.groovy:3)
但是,当我在命令提示符下运行时,它工作得很好:
cd D:\work\griffon\mortgageCal>
griffon run-app
所以,我的智力有问题...
解决了!它之所以给出错误,是因为我试图运行MortgageCalView.groovy。当我运行Griffon:mortgageCal时,它起作用了。换句话说:我必须运行项目,而不是特定的脚本。
问题内容: 我如何在命令提示符下运行Java程序,我的项目是在Intellij中创建的,而我在命令提示符下运行它却遇到了困难…在不使用Intellij创建项目的情况下,我可以在命令提示符下运行Java程序。 我是这样的 但这是Intellij创建的项目。 当我发出此命令时 但我在该目录中。 先感谢您。 问题答案: 三个问题: 您必须为命令指定完全限定的类名称(这意味着包括软件包名称)。看来您的课程
问题内容: 我创建了一个Java项目来调用Web服务。它具有一个Main java文件和另一个class文件。我已经将一些jar文件用于HTTP客户端。 在Eclipse中,它运行良好。我需要通过传递一些参数在命令提示符下运行Java程序。 在命令提示符下,我转到包含主Java和子类Java文件的src文件夹,并给出了以下命令 我收到以下错误 mainjava.java:14:找不到符号 symb
这里的子类是我的另一个java类文件,用于调用web服务。 如何通过传递参数运行程序?
我是刚到爪哇的。我正在尝试将大型机代码转换为Java。我在命令行下面运行。 我可以知道如何设置res.jar。 命令行代码
我最近开始学习Java编程语言的基础知识。为了在命令提示符下运行我的程序,我下载了java开发工具包(也称为JDK),并将我的Windows10系统路径设置为: C:\Program Files\java\jdk-9.0.1\bin;C:\Program Files\java\jre-9.0.1\bin 在用以下格式编写了一个简单的Hello World程序后: 并在命令提示符下使用 ,然后写 j
我遇到了从命令提示符运行java程序的问题。我有一个名为DataRecover的java文件,还有一个名为Triple的java文件。现在,当我在命令提示符下运行javac triple.java时,它会执行它应该执行的操作。但是,当我运行javac DataRecover.java时,它会出现这样的错误消息:“线程”main“java.lang.noClassDeffounderRror:Dat