简体   繁体   English

如何使用JButton为ActionEvent创建If语句

[英]How To create a If Statement for an ActionEvent with JButtons

How do I make only the text belonging to the button the user presses only shows. 如何仅显示属于用户按下的按钮的文本。 As of right now this code opens all of the windows showing the texts of the other buttons.I was thinking of a IF statement but I am not sure what do put in for a button clicked.If anyone knows how to generate a if-statement for a button clicked please share the information. 到现在为止,这段代码打开了所有显示其他按钮文本的窗口。我在想一个IF语句,但是我不确定按钮被按下时该怎么做。如果有人知道如何生成if语句对于单击的按钮,请共享信息。

The first class 头等舱

import java.awt.Color;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.BoxLayout;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

@SuppressWarnings("serial")
public class rohwcg extends JFrame
{

// adds the buttons
private JButton minerbutton;
private JButton farmerbutton;
private JButton lumberjackbutton;
    private JButton blacksmithbutton;

public rohwcg()
{
    super ("Realms of Havenwood Class Guide");
    setLayout(new BoxLayout(getContentPane(), BoxLayout.Y_AXIS));
    setBackground(Color.GREEN);

    //miner button
    Icon mbutton = new ImageIcon (getClass() .getResource("miner.png"));
    minerbutton = new JButton(mbutton);
    add(minerbutton);

    //farmer button
    Icon fbutton = new ImageIcon (getClass() .getResource("farmer.png"));
    farmerbutton = new JButton(fbutton);
    add(farmerbutton);

    //lumberjack button
    Icon lbutton = new ImageIcon (getClass() .getResource("lumberjack.png"));
    lumberjackbutton = new JButton(lbutton);
    add(lumberjackbutton);

    //blacksmith button
    Icon bbutton = new ImageIcon (getClass() .getResource("blacksmith.png"));
    blacksmithbutton = new JButton(bbutton);
    add(blacksmithbutton);

    //the action of the button.
    HandlerClass handler = new HandlerClass();
    minerbutton.addActionListener(handler);
    farmerbutton.addActionListener(handler);
    lumberjackbutton.addActionListener(handler);
    blacksmithbutton.addActionListener(handler);

    //sets the position of the button to center.
    blacksmithbutton.setAlignmentX(Component.CENTER_ALIGNMENT);
    minerbutton.setAlignmentX(Component.CENTER_ALIGNMENT);
    lumberjackbutton.setAlignmentX(Component.CENTER_ALIGNMENT);
    farmerbutton.setAlignmentX(Component.CENTER_ALIGNMENT);    
}

private class HandlerClass implements ActionListener
{
    //what happens when you click the button, below.
    public void actionPerformed(ActionEvent event)
    {           
        //farmer
        String farmertext = "null farmer";  
        JOptionPane.showMessageDialog(farmerbutton,farmertext,"The Farmer Class",JOptionPane.PLAIN_MESSAGE);

        //miner
        String minertext = "null miner";
        JOptionPane.showMessageDialog(minerbutton,minertext, "The Miner Class", JOptionPane.PLAIN_MESSAGE);

        //blacksmith
        String blacksmithtext ="null blacksmith";
        JOptionPane.showMessageDialog(blacksmithbutton,blacksmithtext, "The BlackSmith Class", JOptionPane.PLAIN_MESSAGE);

        //lumberjack
        String lumberjacktext = "null lumberjack";
        JOptionPane.showMessageDialog(lumberjackbutton, lumberjacktext, "The Lumberjack Class", JOptionPane.PLAIN_MESSAGE);         
    }

} 
}

The 2nd class 二等

import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JFrame;

public class thehandler {
public static void main(String args []) 
{
    rohwcg classes1 = new rohwcg();
    classes1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    classes1.setSize(700,300);
    classes1.setVisible(true);

    //Sets the position of the window to a comman ratio. 
    Toolkit tk = Toolkit.getDefaultToolkit();
    Dimension d = tk.getScreenSize();
    int x = d.width / 2;
    int y = (d.height / 2 ) - classes1.getHeight();
    classes1.setLocation(x,y);
}

}

Never-mind i found an answer! 没关系,我找到了答案! quite easy all you need to do is add an object get clicked 非常简单,您需要做的就是添加一个对象并单击

private class HandlerClass implements ActionListener

{ {

public void actionPerformed(ActionEvent click)  {

    Object source = click.getSource();

    if(source == farmerbutton)
    {           
    String farmertext = "Blocks a Farmer cannot break:" +"\r\n" +"\r\n" + "Any type of logs" + "\r\n" + "Stone" + "\r\n" + " Coal ore" + "\r\n" + "Iron ore" + "\r\n" + "Gold ore" + "\r\n" + "Diamond Ore" + "\r\n" + "Redstone ore" + "\r\n" + "Lapiz ore";  
    JOptionPane.showMessageDialog(farmerbutton,farmertext,"The Farmer Class",JOptionPane.PLAIN_MESSAGE);
    }


    if(source == minerbutton)
    {
    String minertext = "null miner";
    JOptionPane.showMessageDialog(minerbutton,minertext, "The Miner Class", JOptionPane.PLAIN_MESSAGE);
    }

    if(source == blacksmithbutton)
    {
    //blacksmith
    String blacksmithtext ="null blacksmith";
    JOptionPane.showMessageDialog(blacksmithbutton,blacksmithtext, "The BlackSmith Class", JOptionPane.PLAIN_MESSAGE);
    }

    if(source == lumberjackbutton)
    {
    //lumberjack
    String lumberjacktext = "null lumberjack";
    JOptionPane.showMessageDialog(lumberjackbutton, lumberjacktext, "The Lumberjack Class", JOptionPane.PLAIN_MESSAGE); 
    }
}

} }

} }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM