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 に答える