1

如何仅显示属于用户按下的按钮的文本。截至目前,这段代码打开了所有显示其他按钮文本的窗口。我在想一个 IF 语句,但我不确定单击按钮时会输入什么。如果有人知道如何生成 if 语句对于单击的按钮,请分享信息。

第一课

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);         
    }

} 
}

2级

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);
}

}
4

1 回答 1

1

没关系,我找到了答案!很简单,你需要做的就是添加一个被点击的对象

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); 
    }
}

}

}

于 2012-10-29T20:07:41.547 回答