Как я могу найти источник кнопки в AWT?JAVA

Программисты JAVA общаются здесь
Anonymous
Как я могу найти источник кнопки в AWT?

Сообщение Anonymous »

нас попросили сделать простой калькулятор с графическим интерфейсом, и я использовал Getsource () для обнаружения кнопок, потому что это то, чему они нас научили. Он работает, набрав первое и второе значение, а затем выбирая операцию. Это сработало. Итак, как мне получить значение каждой кнопки, используя GetSource ()? Например, когда я нажимаю кнопку 1 и 2, равна 3. Вот что я сделал: < /p>
import java.awt.*;
import java.awt.event.*;

public class SimpleCalculator implements ActionListener
{
// Containers
private Frame f;
private Panel p1, p2, p3, p4;

// Components
private Label l1, l2, l3;
private TextField tf1, tf2, tf3;
private Button bAdd, bSub, bMul, bDiv, bClear;

public SimpleCalculator()
{
f = new Frame("My First GUI App");

p1 = new Panel();
p2 = new Panel();
p3 = new Panel();
p4 = new Panel();

l1 = new Label("First: ");
l2 = new Label("Second: ");
l3 = new Label("Result: ");

tf1 = new TextField(15);
tf2 = new TextField(15);
tf3 = new TextField(15);

bAdd = new Button("+");
bSub = new Button("-");
bMul = new Button("*");
bDiv = new Button("/");
bClear = new Button("C");
}

public void launchFrame()
{
// Use the default layout manager of the Panel (FlowLayout)
p1.add(l1);
p1.add(tf1);

p2.add(l2);
p2.add(tf2);

p3.add(l3);
p3.add(tf3);

p4.add(bAdd);
p4.add(bSub);
p4.add(bMul);
p4.add(bDiv);
p4.add(bClear);

// Change the layout manager of the Frame.
// Use GridLayout(4, 1)
f.setLayout(new GridLayout(4, 1));

f.add(p1);
f.add(p2);
f.add(p3);
f.add(p4);

f.pack();
f.setVisible(true);

// Register event handlers
bAdd.addActionListener(this);
bSub.addActionListener(this);
bMul.addActionListener(this);
bDiv.addActionListener(this);
bClear.addActionListener(this);

f.addWindowListener(new MyCloseButtonHandler());
}

// Override the actionPerformed method
public void actionPerformed(ActionEvent ae)
{
Object source = ae.getSource();
double num1, num2, result = 0.0;

if (tf1.getText() != null && tf2.getText() != null)
{
num1 = Double.parseDouble(tf1.getText());
num2 = Double.parseDouble(tf2.getText());

if (source == bAdd)
result = num1 + num2;
else if (source == bSub)
result = num1 - num2;
else if (source == bMul)
result = num1 * num2;
else if (source == bDiv)
result = num1 / num2;
else if (source == bClear)
{
tf1.setText("0.0");
tf2.setText("0.0");
tf3.setText("0.0");
}
else {
}

// tf3.setText(new Double(result).toString());
tf3.setText("" + result);
}
}

private class MyCloseButtonHandler extends WindowAdapter
{
public void windowClosing(WindowEvent we)
{
System.exit(0);
}
}

public static void main(String args[])
{
SimpleCalculator sc = new SimpleCalculator();
sc.launchFrame();
}
}


Подробнее здесь: https://stackoverflow.com/questions/744 ... rce-in-awt

Вернуться в «JAVA»