Java ActionEvent

У меня проблема с Java ActionEvent из-за большого кода.

Я получаю эту ошибку:

Exception in thread "AWT-EventQueue-0" java.lang.Error: Unresolved compilation problem: 
The code of method actionPerformed(ActionEvent) is exceeding the 65535 bytes limit

Я пробовал несколько идей, но ничего не работает, например:

Я добавил еще один ActionEvent

public void actionPerformed(ActionEvent ae) {

Но получил ошибку:

Duplicate method actionPerformed(ActionEvent)

Eclipse показывает мне, переименовать метод tp "actionPerformed2" . Если я это сделаю, код работает, но если я нажму кнопку, ничего не произойдет, сделано так:

public void actionPerformed2(ActionEvent ae) {
if(ae.getSource() == jbtnBuildCarLv1){

person Crelix    schedule 03.03.2016    source источник


Ответы (1)


Ну, так как сообщение просто говорит вам, что ваш метод слишком длинный, просто разделите его.

Также вы не можете просто иметь два метода с одинаковыми именами, но если вы переименуете один, он не будет вызываться, если вы не сделаете это вручную.

person Mark    schedule 03.03.2016
comment
Как я могу это сделать? Может быть, вы знаете хороший учебник? - person Crelix; 03.03.2016
comment
Что ж, если вы не знаете, как вызывать метод, вам, возможно, следует начать с некоторых руководств для начинающих, а не просто переходить к событиям действий и слушателям ... но, эй, простой способ решить вашу проблему, не разбивая на несколько методов, - это очистить свой код. Мне очень трудно поверить, что вам действительно нужна каждая написанная вами строка... Я имею в виду, что я не знаю, что вы пытаетесь сделать, но даже тогда: создание дополнительных подметодов было бы выходом. Просто подумайте о том, что будет через год, когда вы попытаетесь прочитать свой код и понять его. Ты действительно думаешь, что сможешь? - person Mark; 03.03.2016
comment
Я это знаю, я это сделал, но что-то не работает... Я думаю, что понимаю основы, но есть некоторые вещи, которые я не могу понять. Код такой большой, потому что я делаю 2D-кликер на Java, с 200 объектами автомобилей, 10 объектами коробок, 10 уровнями игроков и т. д. Много всего. :D Все работает. Но это не - person Crelix; 03.03.2016
comment
Вы не должны давать каждому объекту собственную ссылку. Я имею в виду, что технически вы должны, но вы должны помещать их в списки, массивы, карты или что-то в этом роде. Таким образом, вы можете перебирать их и иметь намного меньше кода, но он все равно будет делать то же самое. - person Mark; 03.03.2016
comment
Как только вы их используете, не имеет значения, есть ли у вас 10, 100 или даже 100 000 автомобилей, код останется точно такого же размера. - person Mark; 03.03.2016
comment
Огромное спасибо. Не знал этого. :) - person Crelix; 03.03.2016