jButton array !!

hi,How can i add 60 jbuttons to an array and capture their event.Thankz
[92 byte] By [devsua] at [2007-11-27 4:05:32]
# 1
how about ArrayList<JButton> arraylist put all buttons in this arraylist and register them at one ActionListener
Oleka at 2007-7-12 9:10:32 > top of Java-index,Desktop,Core GUI APIs...
# 2
ok thank u i will try it... but i have a doubt in adding them to actionlistener
devsua at 2007-7-12 9:10:32 > top of Java-index,Desktop,Core GUI APIs...
# 3
private JButton button[];// somewhere in ur method add below:button = new JButton[60]and then loop it through to instantiate the 60 arrays...Message was edited by: Monyet
Monyeta at 2007-7-12 9:10:32 > top of Java-index,Desktop,Core GUI APIs...
# 4

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

petes1234a at 2007-7-12 9:10:32 > top of Java-index,Desktop,Core GUI APIs...
# 5

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>

devsua at 2007-7-12 9:10:32 > top of Java-index,Desktop,Core GUI APIs...
# 6

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

...

suparenoa at 2007-7-12 9:10:32 > top of Java-index,Desktop,Core GUI APIs...
# 7

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

}

}

TapasBa at 2007-7-12 9:10:32 > top of Java-index,Desktop,Core GUI APIs...