Try something like this:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
class ButtonTester extends JFrame
{
int buttonX = 20;
int buttonY = 20;
int buttonWidth = 60;
int buttonHeight = 60;
int borderSize = 6;
int btnCount = 60;
int btnColumns = 10;
ButtonTester()
{
JPanel pane = new JPanel();// panel for buttons
GridLayout gl = new GridLayout(0, btnColumns);
gl.setHgap(borderSize);// gridlayout setup
gl.setVgap(borderSize);// gridlayout
pane.setLayout(gl);
// here's our button array
JButton[] myBtns = new JButton[btnCount];
// create each button in this for loop.
for (int indx = 0; indx < myBtns.length; indx++)
{
myBtns[indx] = new JButton(Integer.toString(indx));
myBtns[indx].setBounds(buttonX, buttonY,
buttonWidth, buttonHeight);
// attach each button to the same actionListener
myBtns[indx].addActionListener(listener);
// add each button to the panel
pane.add(myBtns[indx]);
}
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(400, 400);
pane.setBorder(BorderFactory.createEmptyBorder(
borderSize, borderSize, borderSize, borderSize));
this.getContentPane().add(pane);
this.pack();
this.setVisible(true);
}
private ActionListener listener = new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
// find out which button was pressed
JButton myBtn = (JButton) e.getSource();
StringBuilder sb = new StringBuilder();
// display which button was pressed
sb.append("You pressed button " + myBtn.getText());
sb.append("\n" + "button size is: ");
sb
.append("(" + String.valueOf(myBtn.getWidth())
+ ", " + String.valueOf(myBtn.getHeight())
+ ")");
sb.append("\n" + "button location is: ");
sb.append("(" + String.valueOf(myBtn.getX()) + ", "
+ String.valueOf(myBtn.getY()) + ")");
JOptionPane.showMessageDialog(null, sb.toString());
}
};
private static void createAndShowGUI()
{
ButtonTester bt = new ButtonTester();
}
public static void main(String[] args)
{
javax.swing.SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
createAndShowGUI();
}
});
}
}
Message was edited by:
petes1234
I am not able to add buttons to the jpanel using this code can somebody figure out why
jPanel1.setLayout(null);
for(int indx = 0 ; indx<myBtn.length ; indx++)
{
myBtn[indx] = new JButton();
jPanel1.add(myBtn[indx]);
}
Message was edited by:
devsu>
have you got something like that...
...
JButton[] buttonsArray=new JButton[10];
JFrame frame = new JFrame("FrameDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel jp=new JPanel();
for(int i=0;i < buttonsArray.length;i++){
buttonsArray[i]=new JButton("btn: "+i);
jp.add(buttonsArray[i]);
}
frame.getContentPane().add(jp);
...
You can try with the following code
__
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
//import javax.swing.F
import java.awt.Dimension;
public class ButtonDemo extends JFrame {
private JButton bt[];
private JPanel panel;
public static void main(String args[]) {
JFrame frame = new ButtonDemo();
frame.setVisible(true);
frame.setPreferredSize(new Dimension(600,400));
frame.setSize(600, 400);
frame.pack();
frame.setVisible(true);
}
public ButtonDemo() {
panel = new JPanel();
bt = new JButton[60];
for (int i=0 ; i<60 ; i++)
{
bt = new JButton("Button"+i);
bt.setPreferredSize( new Dimension( 85 , 30) );
panel.add( bt );
}
getContentPane().add(panel);
}
}