首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不同类中的JAVA JButton拒绝在按下时激活

不同类中的JAVA JButton拒绝在按下时激活
EN

Stack Overflow用户
提问于 2016-04-13 13:05:52
回答 3查看 66关注 0票数 0

我不明白为什么我的yankeewhiskey JButton不能工作。现在,我只希望它们在romeo大于1而sierra大于1时关闭程序。

代码语言:javascript
运行
复制
import java.awt.*;
import java.lang.*;
import javax.swing.*;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.*;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
import javax.swing.JPanel;
import java.util.Scanner;

public class AlphaMenu extends JFrame /*implements actionPerformed*/
{

    private GraphicsDevice gamma;
    public JButton charlie, zulu, yankee, xray;
    public JFrame beta;
    public JPanel delta, echo, foxtrot, golf, hotel;
    public JTextArea whiskey, victor;
    public BorderLayout uniform;
    public ImageIcon bg;
    public JLabel tango;
    public int sierra, romeo;
    public Integer quebec, papa;
    public ActionEvent oscar;
    public ActionEvent november;

    public AlphaMenu()
    {
        //Initialization of Objects
        charlie = new JButton("EXIT");
        zulu = new JButton("Enter Time");
        yankee = new JButton("Enter Amount of Money");
        xray = new JButton("Calculate");
        sierra = 0;
        romeo = 0;
        quebec = new Integer(0);
        papa = new Integer(0);
        whiskey = new JTextArea(2, 15);
        victor = new JTextArea(2, 15);
        bg = new ImageIcon("background.gif");
        beta = new JFrame();
        delta = new JPanel();
        echo = new JPanel();
        foxtrot = new JPanel();
        golf = new JPanel();
        hotel = new JPanel();
        uniform = new BorderLayout();
        ImageIcon bg = new ImageIcon("background.gif");
        tango = new JLabel("");

        tango.setIcon(bg);

        //Modification of panels
        beta.add(delta, uniform.PAGE_END);
        beta.add(golf, uniform.PAGE_START);
        beta.add(echo, uniform.LINE_START);
        beta.add(foxtrot, uniform.LINE_END);
        beta.add(hotel, uniform.CENTER);

        golf.add(tango);

        //Modification of JButton charlie & adding of JButtons
        charlie.setPreferredSize(new Dimension(100, 50));
        delta.add(charlie);
        charlie.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                System.exit(0);
            }
        });
        echo.add(whiskey);
        echo.add(yankee);
        foxtrot.add(victor);
        foxtrot.add(zulu);


        //Modification of JFrame beta
        beta.setUndecorated(true);
        beta.setExtendedState(JFrame.MAXIMIZED_BOTH);
        beta.setResizable(false);
        beta.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        beta.setVisible(true);
    }

    public void buttonSetup() throws NumberFormatException
    {
        //Modification of JButton yankee & JTextArea whiskey & int sierra
        romeo = quebec.parseInt(whiskey.getText());
        yankee.setPreferredSize(new Dimension(300, 50));
        yankee.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent oscar)
            {
                System.exit(0);
            }
        });

        //Modification of JButton zulu & JTextArea victor & int romeo
        sierra = papa.parseInt(victor.getText());
        zulu.setPreferredSize(new Dimension(300, 50));
        zulu.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent november)
            {
                System.exit(0);
            }
        });

    }

    public void actionPerformed(ActionEvent e)
    {
    }

    public static void main(String[] args)
    {
        new AlphaMenu();
    }
}
EN

Stack Overflow用户

回答已采纳

发布于 2016-04-13 13:21:10

因此,您有两个JTextArea (JTextField可能更好)和一个按钮。当两个文本区域的文本大于1时,需要一些按钮执行exit。

似乎您的buttonSetup()函数没有被任何地方调用。

无论如何,我会创建一个ActionListener,用于读取文本、转换为整数、测试条件并执行exit()。应该将此ActionListener添加到要执行该操作的所有按钮中。

代码语言:javascript
运行
复制
final ActionListener al = new ActionListener() {
    public void actionPerformed(ActionEvent event) {
        try {
            final int intRomeo = Integer.parseInt(romeo.getText());
            final int intSierra = Integer.parseInt(sierra .getText());

            if (intRomeo > 1 && intSierra > 1) {
                // whatever you want to do
                System.exit(0); 
            }
        } catch (/*NumberFormat*/ Exception e) {
            // ...not integers
        }
    };
}
whiskey.addActionListener(al);
yankee.addActionListener(al);

我必须补充一句:您使用的变量名称非常糟糕。考虑选择更有意义的东西。

票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36599340

复制
相关文章

相似问题

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