Как я могу удалить и заменить Jlabel значком изображения в Java? - PullRequest
0 голосов
/ 20 февраля 2019

Я пытаюсь создать банковскую систему, чтобы не было скучно, мы пытались добавить значок изображения в программу в jlabel, когда я попытался запустить код и первая ошибка ввода, удаляет ярлык тестера успешно, но проблема заключается в том, чтокогда количество попыток равно 4, метка pinwrongtester, похоже, не удаляется, а смешивается с меткой, которую я запрограммировал, когда они вводили пин 4 раза, я надеюсь, что вы, ребята, можете помочь мне решить эту ошибку

   public void Option()
{
    //option title
   JLabel label = new JLabel("Choose Options");
   label.setFont(new Font("Consolas",Font.BOLD,20));

   JButton choose = new JButton();
   choose.add(label);
   choose.setBounds(200,300,200,40);
   choose.setBackground(Color.white);
   choose.setEnabled(false);


   // Buttons Option 
   JButton Balance = new JButton("Balance");
   JButton Withdraw= new JButton("Withdraw");
   JButton Send = new JButton("Transfer");
   JButton Exit = new JButton("Exit");


    //Set Bounds
    Balance.setBounds(50,350,200,40);
    Withdraw.setBounds(50,450,200,40);
    Send.setBounds(350,350,200,40);
    Exit.setBounds(350,450,200,40);

    //addActionListener
    Balance.addActionListener(new ActionListener() {
       @Override
       public void actionPerformed(ActionEvent e) {
           pinbalance();
       }
   });
    Withdraw.addActionListener(new ActionListener() {
       @Override
       public void actionPerformed(ActionEvent e) {
           pinwithdraw();
       }
   });
    Send.addActionListener(new ActionListener() {
       @Override
       public void actionPerformed(ActionEvent e) {
           pintransferfunds();
       }
   });

   //add buttons and labels
   p.add(choose);
   p.add(Balance);
   p.add(Withdraw);
   p.add(Send);
   p.add(Exit);
}
JPanel enterpinbg;
JFrame enterpinframe;
String account_name;
String balance;
String pindb;

JLabel tester;
JLabel pinwrongtester;
JLabel pinwrongertester;
JLabel balancetester;

JFrame balanceframe;
JPanel balancepanel;

ImageIcon enteryourpin;
ImageIcon pinwrong;
ImageIcon pinwronger;
ImageIcon balanceicon;

private LinkedList<String> picturetrans;


JTextField inputpin;
boolean police = false;
int x =0;

public void pinbalance()
{

 //PIN FRAME
    enterpinframe = new JFrame("Enter Pin");
    enterpinframe.setSize(WIDTH,HEIGHT);
    enterpinframe.setVisible(true);
    enterpinframe.setResizable(false);
    enterpinframe.setLocationRelativeTo(null);
    enterpinframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);



     //PIN PANEL  
    enterpinbg = new JPanel();
    enterpinbg.setSize(WIDTH,HEIGHT);
    enterpinbg.setBackground(Color.orange);
    enterpinbg.setVisible(true);
    enterpinbg.setLayout(null);
    enterpinframe.add(enterpinbg);

  inputpin = new JTextField();
     inputpin.setFont(new Font("Consolas",Font.BOLD,20));
   inputpin.setForeground(Color.gray);

       //Setbounds
    inputpin.setBounds(250,600,100,40);


      //tester + image
     enteryourpin = new ImageIcon(getClass().getResource("Enter yout      PIN.png"));
     tester = new JLabel(enteryourpin);
      tester.setBounds(50,50,500,500);




    //enterpin Add
     enterpinbg.add(tester);
    enterpinbg.add(inputpin);
     this.dispose();


    inputpin.addKeyListener(new KeyListener() {
        @Override
        public void keyTyped(KeyEvent e) {

        }

        @Override
        public void keyPressed(KeyEvent e) {

            if(e.getKeyCode()==(KeyEvent.VK_ENTER))

            {
            String pinx = inputpin.getText();
            Connection con= null;
            Statement stmt = null;
                try
                {
                    Class.forName(JDBC_DRIVER1);
                    Class.forName(JDBC_DRIVER2);
                    con = DriverManager.getConnection(URL,USER,PASS);
                    stmt=con.createStatement();
                    String sql ="SELECT*FROM TBL_BANK WHERE PIN ='"+pinx+"' ";
                    ResultSet rs = stmt.executeQuery(sql);
                        while(rs.next())
                        {
                        pindb = rs.getString("PIN");
                        account_name = rs.getString("ACCOUNT_NAME");
                        balance = rs.getString("BALANCE");    
                        }
                        rs.close();

                }
                catch(Exception f)
                {
                    System.out.println(f);
                }

                //if Login Success and Failed

                if(pinx.equals(pindb))
                { 
                  // Balance will show up

                 }

                else if(pinx!=(pindb))
                {

                    enterpinbg.remove(tester); 
                    x++;
                    System.out.println("x");
                    inputpin.setText("");


                    pinwrong = new ImageIcon(getClass().getResource("PIN Wrong (1_2Times).png"));
                    pinwrongtester = new JLabel(pinwrong);
                    pinwrongtester.setBounds(50,50,500,500);
                    enterpinbg.add(pinwrongtester);

                     enterpinbg.repaint();

                    if(x>=4 )
                      {
                        // this doesnt quite work please help me fix it
                       enterpinbg.remove(pinwrongtester);
                       enterpinbg.repaint();


                       }


                }



            }
        }

        @Override
        public void keyReleased(KeyEvent e) {

        }
    });
...