首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从swingbuilder返回一个值

从swingbuilder返回一个值
EN

Stack Overflow用户
提问于 2012-02-21 18:47:11
回答 1查看 1.2K关注 0票数 0

在下面的脚本中,我如何获得一个返回值,而不是我无法读取的println?我在Filemaker中使用Groovy,所以我需要一个显式的返回‘答案’,即密码或TRUE,而我似乎不明白如何让代码等待,直到它最终输入正确的密码。

代码语言:javascript
复制
import groovy.swing.SwingBuilder
import java.awt.event.ActionListener
import java.awt.event.ActionEvent
import static javax.swing.WindowConstants.DISPOSE_ON_CLOSE

count = 2
def answer

SwingBuilder.build{
    frame( id:'root', title:'Enter your PASSWORD', location:[100,100], show:true, pack:true, defaultCloseOperation:DISPOSE_ON_CLOSE){
        //lookAndFeel 'nimbus'
        flowLayout()
        label('Password')
        passwordField(id:'pass', columns:12)
        button('click', actionPerformed:{
        ActionEvent e->
            if (pass.text == 'password'){
            optionPane().showMessageDialog( root, 'OK')

            //RETURN something at this point only when I get here

            dispose()
            } else if (count == 1) {
            optionPane().showMessageDialog(root, 'INCORRECT PASSWORD\nPROCEDURE HALTED', 'PASSWORD', 2)
            dispose()
            } else {
            count--
            message = count ==1 ?'try':'tries'
            optionPane().showMessageDialog(root, "${count} ${message} left", 'NOT VALID', 0)
            }// end if
            pass.text=''
        }// end action
        )// end button
    }
}
EN

回答 1

Stack Overflow用户

发布于 2012-02-22 01:26:17

添加一个名为successfulLogin的布尔型字段,并将其设置为true

你什么时候真正让你的框架可见?您可能只想使用JOptionPane。

代码语言:javascript
复制
import javax.swing.JComponent
import javax.swing.JPasswordField
import javax.swing.JLabel
import javax.swing.JOptionPane

public boolean loginSuccessful() throws Exception {
    final JPasswordField passwordField = new JPasswordField();
    final JComponent[] components = [new JLabel("Password"), passwordField];
    if (JOptionPane.showConfirmDialog(null, components, "Enter your PASSWORD", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE) == JOptionPane.OK_OPTION) {
        // user clicked ok
        if (new String(passwordField.getPassword()).equals("password")) {
            // password matches
            return true;
        }
    }
    return false;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9376186

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档