Может кто-нибудь сказать мне, что не так с моим кодом?
Я пытаюсь создать пользовательский интерфейс с bin, dec и т. Д., И каждый раз, когда он нажимает только соответствующие числа, соответствующие системе счисленияможет быть выбран пользователем или отображен в textField, например, если пользователь щелкает bin, только 0 и 1 может отображаться в textField.
Я пытался использовать вложенные операторы if else, но это не похожеработать.Пожалуйста, помогите, спасибо.
Вот мой код ниже:
import java.awt.BorderLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import javax.swing.*;
import java.awt.*;
import java.awt.FlowLayout;
public class Trial extends JFrame implements ActionListener
{
private JTextField textField;
private JButton n1, n2, n3, n4, n5, n6, n7, n8, n9, n0, add, subtract, multiply, divide, clear, backspace, bin, dec, oct, hex;
private JPanel panel, panel1, p;
public Trial(String str)
{
super(str);
setSize(300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setResizable(false);
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(5, 4));
panel.add(n1 = new JButton("1"));
panel.add(n2 = new JButton("2"));
panel.add(n3 = new JButton("3"));
panel.add(backspace = new JButton("C"));
panel.add(n4 = new JButton("4"));
panel.add(n5 = new JButton("5"));
panel.add(n6 = new JButton("6"));
panel.add(bin = new JButton("BIN"));
panel.add(n7 = new JButton("7"));
panel.add(n8 = new JButton("8"));
panel.add(n9 = new JButton("9"));
panel.add(dec = new JButton("DEC"));
panel.add(add = new JButton("+"));
panel.add(n0 = new JButton("0"));
panel.add(subtract = new JButton("-"));
panel.add(oct = new JButton("OCT"));
panel.add(multiply = new JButton("*"));
panel.add(clear = new JButton("AC"));
panel.add(divide = new JButton("/"));
panel.add(hex = new JButton("HEX"));
JPanel panel1 = new JPanel();
panel1.setLayout(new FlowLayout());
panel1.add(textField = new JTextField(20));
panel.setBounds(20,20,300,150);
panel1.setBounds(0,0,300,20);
add(panel, BorderLayout.SOUTH);
add(panel1, BorderLayout.NORTH);
n1.addActionListener(this);
n2.addActionListener(this);
n3.addActionListener(this);
n4.addActionListener(this);
n5.addActionListener(this);
n6.addActionListener(this);
n7.addActionListener(this);
n8.addActionListener(this);
n9.addActionListener(this);
n0.addActionListener(this);
add.addActionListener(this);
subtract.addActionListener(this);
multiply.addActionListener(this);
divide.addActionListener(this);
clear.addActionListener(this);
backspace.addActionListener(this);
bin.addActionListener(this);
dec.addActionListener(this);
oct.addActionListener(this);
hex.addActionListener(this);
setVisible(true);
}
public void actionPerformed(ActionEvent event)
{
if(event.getSource() == bin){
if(event.getSource() == n1){
textField.setText(textField.getText() + "1");
}
else if(event.getSource() == n0){
textField.setText(textField.getText() + "0");
}
else if(event.getSource() == add){
textField.setText(textField.getText() + " + ");
}
else if(event.getSource() == subtract){
textField.setText(textField.getText() + " - ");
}
else if(event.getSource() == multiply){
textField.setText(textField.getText() + " * ");
}
else if(event.getSource() == divide){
textField.setText(textField.getText() + " / ");
}
else if(event.getSource() == clear){
textField.setText("");
}
else{
textField.setText("");
}
}
else if(event.getSource() == dec){
if(event.getSource() == n1){
textField.setText(textField.getText() + "1");
}
else if(event.getSource() == n2){
textField.setText(textField.getText() + "2");
}
else if(event.getSource() == n3){
textField.setText(textField.getText() + "3");
}
else if(event.getSource() == n4){
textField.setText(textField.getText() + "4");
}
else if(event.getSource() == n5){
textField.setText(textField.getText() + "5");
}
else if(event.getSource() == n6){
textField.setText(textField.getText() + "6");
}
else if(event.getSource() == n7){
textField.setText(textField.getText() + "7");
}
else if(event.getSource() == n8){
textField.setText(textField.getText() + "8");
}
else if(event.getSource() == n9){
textField.setText(textField.getText() + "9");
}
else if(event.getSource() == n0){
textField.setText(textField.getText() + "0");
}
else if(event.getSource() == add){
textField.setText(textField.getText() + " + ");
}
else if(event.getSource() == subtract){
textField.setText(textField.getText() + " - ");
}
else if(event.getSource() == multiply){
textField.setText(textField.getText() + " * ");
}
else if(event.getSource() == divide){
textField.setText(textField.getText() + " / ");
}
else if(event.getSource() == clear){
textField.setText("");
}
}
}
public static void main(String [] args)
{
new Trial("Le Frame");
}
}
Проблема приведенного выше кода заключается в том, что он вообще не отображает никаких символов вtextfield.
Ниже приведен фрагмент программы:! [1]: (https://i.stack.imgur.com/R2Len.png)