Консультация № 183944
31.08.2011, 14:01
133.51 руб.
0 5 2
Здравствуйте! Пожалуйста, решите задачу:
Создаать форму с несколькими кнопками так, чтобы надпись на первой кнопке при ее нажатии передавалась на следующую, и т.д.
Код на Java.

Обсуждение

давно
Профессор
230118
3054
31.08.2011, 15:16
общий
это ответ
Здравствуйте, Иван!

В этой программе используется awt, написано в Eclipse.
Если есть вопросы, обращайтесь в мини-форум.
На форме 3 кнопки, надпись имеется на первой. Если нажать на кнопку с надписью, она переходит на следующую.

Код:
import java.awt.*;
import java.awt.event.*;

public class main {

/**
* @param args
*/
public static void main(String[] args) {
Frame frm=new Frame("Ivan");

frm.setSize(550,400);
frm.setVisible(true);
frm.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
Panel p = new Panel();
p.setLayout(new GridLayout(3,1));

final Button b1=new Button("Click me");
p.add(b1);
final Button b2=new Button("");
p.add(b2);
final Button b3=new Button("");
p.add(b3);
ActionListener a = new ActionListener() {
public void actionPerformed(ActionEvent ae) {
String s = ae.getActionCommand();
if (s.equals("Click me")) {
if(ae.getSource().equals(b1))
{
b2.setLabel("Click me");
}
if(ae.getSource().equals(b2))
{
b3.setLabel("Click me");
}
}
}
};
b1.addActionListener(a);
b2.addActionListener(a);
b3.addActionListener(a);
frm.add(p,BorderLayout.NORTH);
}
}



5
давно
Профессионал
848
1596
31.08.2011, 17:00
общий
это ответ
Здравствуйте, Иван!
Код:
import javax.swing.*;
import java.awt.event.*;

public class Main {
static JButton jButton1 = new JButton("0");
static JButton jButton2 = new JButton("1");
static JButton jButton3 = new JButton("2");
static JButton jButton4 = new JButton("3");
static JButton myButts[]={jButton1, jButton2, jButton3, jButton4};

public static void main(String[] args)
{
ActionListener al = new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
int i;
int newbutton;
for(i = 0; i<myButts.length-1; i++)
{
if(myButts[i].equals(ae.getSource()))
break;
}
if(i==myButts.length-1)
newbutton = 0;
else
newbutton = i + 1;
myButts[newbutton].setText(myButts[i].getText());
}
};

JFrame jfrm = new JFrame("myButtons");
jfrm.setSize(300,100);
JPanel jp=new JPanel();
jp.setLayout(new BoxLayout(jp, BoxLayout.LINE_AXIS));
jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
for(JButton butt: myButts)
{
butt.addActionListener(al);
jp.add(butt);
}
jfrm.add(jp);
jfrm.setVisible(true);
}
}
5
Неизвестный
01.09.2011, 06:58
общий
Здравствуйте!
Обе программы работают, обе мне подходят.
Как поступать в такой ситуации я не знаю, может подскажете?
Спасибо Асмик. Спасибо PsySex.
давно
Профессионал
848
1596
01.09.2011, 07:59
общий
Как поступать в такой ситуации я не знаю, может подскажете?

Эксперты могут дать Вам хоть 10 ответов. Вы просто для себя можете выбрать понравившейся вариант.
Неизвестный
01.09.2011, 13:25
общий
Адресаты:
В таком случае выбираю Ваш ответ.
Форма ответа