Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > Перемещение фигуры по окну


Автор: IndigoStill 14.5.2008, 22:41
Рассматривал пример по смещению фигуры

Код

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class NewEmpty3 
{
    public static void main(String [] args)
    {
        My f=new My();
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.show();
    }
}
class My extends JFrame
{
    private int x1 = 50;
    public My() 
    {
        setTitle("123");
        setSize(500,500);
        MyPanel panel = new MyPanel();
        Container pane = getContentPane();
        pane.add(panel);
    
        JToolBar bar = new JToolBar();
        JButton b1 = new JButton ("<=");
        bar.add(b1);
        b1.addActionListener(new ActionListener()
        {
            public void actionPerfomed(ActionEvent event)
            {
                x1-=5;
                repaint();
            }

            public void actionPerformed(ActionEvent e) {
                throw new UnsupportedOperationException("Not supported yet.");
            }
        });
        JButton b2 = new JButton ("=>");
        bar.add(b2);  
        b2.addActionListener(new ActionListener()
        {
            public void actionPerfomed(ActionEvent event)
            {
                x1+=5;
                repaint();
            }

            public void actionPerformed(ActionEvent e) {
                throw new UnsupportedOperationException("Not supported yet.");
            }
        });  
        pane.add(bar,BorderLayout.NORTH);
    }

    class MyPanel extends JPanel
{
        @Override
    public void paintComponent(Graphics g)
    {
            super.paintComponent(g);
            g.drawOval(x1, 50, 100, 100);
        }
    }
}


Подскажите, почему при нажатии кнопки "<=" или "=>" вместо сдвига выдает ошибку?

Автор: Старовъръ 14.5.2008, 23:08
Код

  public void actionPerfomed(ActionEvent event)
            {
                x1+=5;
                repaint();
            }
            public void actionPerformed(ActionEvent e) {
                throw new UnsupportedOperationException("Not supported yet.");
            }
Зачем эти два метода? При нажатии на кнопку вызывается второй метод(потому что он написан без ошибки). В нем ты сам и выбрасываешь исключение! Убери второй метод, напиши правильно первый, вот и все дела.

Автор: IndigoStill 14.5.2008, 23:18
Цитата

Зачем эти два метода? При нажатии на кнопку вызывается второй метод(потому что он написан без ошибки). В нем ты сам и выбрасываешь исключение! Убери второй метод, напиши правильно первый, вот и все дела.


Все вроде бы так, но IDE не компилит без второго метода, как раз она его и создает.

Автор: Kangaroo 14.5.2008, 23:42
Цитата(Старовъръ @  14.5.2008,  23:08 Найти цитируемый пост)
actionPerfoRmed




IndigoStill, напиши название первого метода правильно )) и убери второй.

Автор: IndigoStill 15.5.2008, 19:43
Спасибо большое заработало только не “actionPerfoRmed”,  а “actionPerformed”.

Автор: Kangaroo 15.5.2008, 21:57
Цитата(IndigoStill @  15.5.2008,  19:43 Найти цитируемый пост)
только не “actionPerfoRmed”,  а “actionPerformed”

Это я чтобы ошибку выделить smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)