从类到主方法获取布尔值。 JAVA

时间:2015-12-09 23:35:45

标签: java swing jframe jbutton jdialog

我已经花了好几个小时从类中获取boolean值到main方法。我想要变量GeneralFrame

使用JDialog询问用户是新手还是退回然后运行我的JFrame也是正确的?这是我的代码:

package portofoliexpense;   

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

/**
 *
 * @author AlexandrosAndreadis
 */
public class PortofoliExpenseDialog extends JDialog implements ActionListener {     
    boolean GeneralFrame = false;           

    //dimiourgia minimatos
    JPanel messagePane = new JPanel();          

    JPanel buttonPanel = new JPanel(); // ftiaxnw button
    JButton existinguser = new JButton("Existing User");
    JButton newuser = new JButton("New User");

    public PortofoliExpenseDialog (JFrame parent, String title) {
        super(parent, title);

        setLocationRelativeTo(null);
        //dimiourgia minimatos
        messagePane.add(new JLabel("Hello, click one of the above to continue!"));

        getContentPane().add(messagePane);// ypodoxeas gia ola ta //components           

        buttonPanel.add(existinguser);
        buttonPanel.add(newuser);
        getContentPane().add(buttonPanel, BorderLayout.PAGE_END); // border //layout sto telos tou dialog 


        newuser.addActionListener(this);
        existinguser.addActionListener(this);

        setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        setResizable(false); // den allazei megethos
        pack();
        setVisible(true);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        Object source = e.getSource();
        if (source == existinguser) {
           GeneralFrame = true; 

        }

        if (source == newuser){
           GeneralFrame = false;       
        }

    }        
}

我尝试过很多东西。我也使用return但是无法得到它。

3 个答案:

答案 0 :(得分:0)

主方法只接受字符串数组:

public static void main(String[] args) { 

因此,您可以发送到main方法的唯一数据当然是数组。但是,你想传入一个布尔值。

你知道如何传递一个参数,但这里它只接受一个字符串数组。因为我们想要传递一个布尔值,所以我们只需要在数组中传递布尔

通过字符串数组将布尔值传递给main方法后,检索它,执行以下操作:

    boolean boolean1 = Boolean.parseBoolean(ArrayWhereIPutMyBoolean(0));

现在,boolean1是你从main方法传入的布尔值!

答案 1 :(得分:0)

在main方法中,您将变量GeneralFrame称为"实例名称" .GeneralFrame?

答案 2 :(得分:0)

您可以使用JOptionPane代替JDialog

以下是一个例子:

static boolean isNewUser;
public static void main(String[] args) throws InvocationTargetException, InterruptedException {
    SwingUtilities.invokeAndWait(new Runnable() {
        @Override
        public void run() {
            isNewUser = isNewUser();
        }
    });
    System.out.println("Is new user: " + isNewUser);
}

public static boolean isNewUser() {
    Object[] options = { "Existing User", "New User" };
    int resp = JOptionPane.showOptionDialog(null, "Hello, click one of the above to continue!", "User Type", JOptionPane.YES_NO_OPTION,
            JOptionPane.QUESTION_MESSAGE, null, options, options[0]);
    return resp == JOptionPane.NO_OPTION;
}