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