Некорректно работает jar из NetBeans - Java

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, создал проект в NetBeans, затем Выполнить - очистить и собрать проект. Появился jar файл, он запускает gui, которая указана в проекте, но любые действия там не работаю(кнопки и т.п.). Когда запускаю этот же jar файл через NetBeans все отлично работает. Не подскажете в чем может быть проблема?

Решение задачи: «Некорректно работает jar из NetBeans»

textual
Листинг программы
package mygame;
 
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
 
/**
 * Created by Void on 31.07.2014.
 */
public class NewFrame extends JFrame {
    TextArea ta1 = new TextArea("Добрый день, приветствую вас в игре 'Спаси животину'", 0, 40, TextArea.SCROLLBARS_VERTICAL_ONLY);
    JLabel score = new JLabel("<html> <br>Выберите<br>Сложность</html>");
    Panel chose = new Panel();
    Label game = new Label("Выберите сложность: ");
    Label game2 = new Label("Чем будете кормить:");
    JButton b1 = new JButton("Статус");
    JButton b2 = new JButton("Сделать Ход");
    JButton b3 = new JButton("легко");
    JButton b4 = new JButton("не легко");
    JButton b5 = new JButton("очень не легко");
    Choice foodType=new Choice ();
    Choice animalName=new Choice ();
 
 
    int PetAnimalDiedFromHunger = 0;
    int WildAnimalDiedFromHunger = 0;
    int PetAnimalDiedFromAging = 0;
    int WildAnimalDiedFromAging = 0;
    int NumberOfTurns = 0;
    int pp1 = 0;
    int ww1 = 0;
 
    ArrayList<Wild> w1 = new ArrayList<Wild>();
    ArrayList<Pet> p1 = new ArrayList<Pet>();
    int x = (int) (20 - (Math.random() * 10)); //age
    int y = 100; //health
    int z = 100; //hunger
 
 
    ActionListener AL1 = new TestActionListener();
    ActionListener AL2 = new ChoseDiff();
    ActionListener Turn = new Turn();
    ActionListener Easy = new Easy();
    ActionListener Medium = new Medium();
    ActionListener Hard = new Hard();
 
    public NewFrame(String title) {
        super(title);
        setBackground(Color.lightGray);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new BorderLayout());
        add(ta1, BorderLayout.CENTER);
        add(score, BorderLayout.NORTH);
        score.setHorizontalAlignment(SwingConstants.CENTER);
        add(chose, BorderLayout.SOUTH);
        add(b1, BorderLayout.EAST);
        add(b2, BorderLayout.WEST);
        chose.add(game);
        chose.add(b3);
        chose.add(b4);
        chose.add(b5);
        b3.addActionListener(AL2);
        b3.addActionListener(Easy);
        b4.addActionListener(AL2);
        b4.addActionListener(Medium);
        b5.addActionListener(AL2);
        b5.addActionListener(Hard);
 
//        b2.setActionCommand("Button 1 was pressed!");
//        b1.setActionCommand("Button 2 was pressed!");
//        b2.addActionListener(AL1);
        b1.addActionListener(new Status());
        setSize(900, 700);
        pack();
        setVisible(true);
        setLocationRelativeTo(null);
    }
 
    String dif = null;
 
    public class TestActionListener implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            game = new Label("Выберите сложность: ");
            chose.add(b3);
            chose.add(b4);
            chose.add(b5);
            chose.revalidate();
            chose.remove(animalName);
            chose.remove(game2);
            chose.remove(foodType);
            b1.setText("Статус");
            b1.removeActionListener(AL1);
            b2.removeActionListener(Turn);
            w1.clear();
            p1.clear();
            pp1 = 0;
            ww1 = 0;
            PetAnimalDiedFromHunger = 0;
            WildAnimalDiedFromHunger = 0;
            PetAnimalDiedFromAging = 0;
            WildAnimalDiedFromAging = 0;
            NumberOfTurns = 0;
            foodType.removeAll();
            animalName.removeAll();
            chose.revalidate();
        }
    }
 
    public class ChoseDiff implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            chose.remove(b3);
            chose.remove(b4);
            chose.remove(b5);
            game.setText("Какое животное:");
            chose.add(animalName);
            chose.add(game2);
            chose.add(foodType);
            chose.revalidate();
        }
    }
 
    public class Easy implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            Names n1 = new Names();
            while (w1.size() < 2) {
                String h = null;
                try {
                    h = n1.getName();
                } catch (IOException e1) {
                    e1.printStackTrace();
                } // h - имя
                Food f1 = new Food();
                String g = null;
                try {
                    g = f1.getFood();
                } catch (IOException e1) {
                    e1.printStackTrace();
                } // g - еда
                w1.add(new Wild(h, x, y, z, "дикое", g));
                x = (int) (20 - (Math.random() * 10));//age
 
            }
            while (p1.size() < 2) {
                String h = null;
                try {
                    h = n1.getName();
                } catch (IOException e1) {
                    e1.printStackTrace();
                } // h - имя
                Food f1 = new Food();
                String g = null;
                try {
                    g = f1.getFood();
                } catch (IOException e1) {
                    e1.printStackTrace();
                } // g - еда
                p1.add(new Pet(h, x, y, z, "домашнее", g));
                x = (int) (20 - (Math.random() * 10));//age
 
            }
            dif = "легко";
            pp1 = p1.size();
            ww1 = w1.size();
            if (pp1 % 2 != 0) pp1++;
            if (ww1 % 2 != 0) ww1++;
            new Game();
        }
    }
 
    public class Medium implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            Names n1 = new Names();
            while (w1.size() < 4) {
                String h = null;
                try {
                    h = n1.getName();
                } catch (IOException e1) {
                    e1.printStackTrace();
                } // h - имя
                Food f1 = new Food();
                String g = null;
                try {
                    g = f1.getFood();
                } catch (IOException e1) {
                    e1.printStackTrace();
                } // g - еда
                w1.add(new Wild(h, x, y, z, "дикое", g));
                x = (int) (20 - (Math.random() * 10));//age
            }
            while (p1.size() < 6) {
                String h = null;
                try {
                    h = n1.getName();
                } catch (IOException e1) {
                    e1.printStackTrace();
                } // h - имя
                Food f1 = new Food();
                String g = null;
                try {
                    g = f1.getFood();
                } catch (IOException e1) {
                    e1.printStackTrace();
                } // g - еда
                p1.add(new Pet(h, x, y, z, "домашнее", g));
                x = (int) (20 - (Math.random() * 10));//age
            }
            dif = "не легко";
            pp1 = p1.size();
            ww1 = w1.size();
            if (pp1 % 2 != 0) pp1++;
            if (ww1 % 2 != 0) ww1++;
            new Game();
        }
    }
 
    public class Hard implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            Names n1 = new Names();
            while (w1.size() < 6) {
                String h = null;
                try {
                    h = n1.getName();
                } catch (IOException e1) {
                    e1.printStackTrace();
                } // h - имя
                Food f1 = new Food();
                String g = null;
                try {
                    g = f1.getFood();
                } catch (IOException e1) {
                    e1.printStackTrace();
                } // g - еда
                w1.add(new Wild(h, x, y, z, "дикое", g));
                x = (int) (20 - (Math.random() * 10));//age
            }
            while (p1.size() < 8) {
                String h = null;
                try {
                    h = n1.getName();
                } catch (IOException e1) {
                    e1.printStackTrace();
                } // h - имя
                Food f1 = new Food();
                String g = null;
                try {
                    g = f1.getFood();
                } catch (IOException e1) {
                    e1.printStackTrace();
                } // g - еда
                p1.add(new Pet(h, x, y, z, "домашнее", g));
                x = (int) (20 - (Math.random() * 10));//age
            }
            dif = "очень не легко";
            pp1 = p1.size();
            ww1 = w1.size();
            if (pp1 % 2 != 0) pp1++;
            if (ww1 % 2 != 0) ww1++;
            new Game();
        }
    }
 
 
    public class Game {
        public Game(){
            ta1.setText("Верный выбор! Вы выбрали " + dif + ". В мире создано " + p1.size() + " домашних и "
                    + w1.size() + " диких животных. Удачи!"+"\n");
            ta1.append("Животные: \n");
            for (Wild a : w1) {
                animalName.addItem(a.name);
                String b = a.toString();
                ta1.append(b + "\n");
            }
            for (Pet a : p1) {
                animalName.addItem(a.name);
                String b = a.toString();
                ta1.append(b + "\n");
            }
            ta1.append("Пища: \n");
            Food b1 = new Food();
            ArrayList<String> s1 = null;
            try {
                s1 = b1.getAllFood();
            } catch (IOException e) {
                e.printStackTrace();
            }
            for (String a: s1) {
                String b = a.toString();
                foodType.addItem(b);
                ta1.append(b + "\n");
            }
             score.setText("<html>Сделано ходов: " + NumberOfTurns + "Осталось в живых: Домашних:" + p1.size() + "/"+pp1+", Диких:"+ w1.size()+"/"+ww1 +"<br>"
             + "Умерло от голода: Домашних: " + PetAnimalDiedFromHunger + ", Диких:" + WildAnimalDiedFromHunger + "<br>"
             + "Умерло от старости: Домашних: " + PetAnimalDiedFromAging + ", Диких:" + WildAnimalDiedFromAging + "</html>");
            b2.addActionListener(Turn);
        }
    }
    public class Turn implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            if ((PetAnimalDiedFromHunger < pp1 / 2) && (WildAnimalDiedFromHunger < ww1 / 2) && ((p1.size() > 0) || (w1.size() > 0))) {
                for (Wild z1 : w1) {
                    if (z1.name.equals(animalName.getSelectedItem())) {
                        if (z1.food.equals(foodType.getSelectedItem())) {
                            z1.hunger += 40; // увеличиваем значение голода на 40
                            if (z1.hunger > 100) z1.hunger = 105; // но не больше 105
                            ta1.append("Мммм....Вкуснятина!!\n");
                            ta1.append("Голод " + z1.name + " увеличился на 40 пунктов\n");
                        } else ta1.append("Животное " + z1.name + " не кушает этого!\n");
                    }
                }
                for (Pet z1 : p1) {
                    if (z1.name.equals(animalName.getSelectedItem())) {
                        if (z1.food.equals(foodType.getSelectedItem())) {
                            z1.hunger += 40; // увеличиваем значение голода на 40
                            if (z1.hunger > 100) z1.hunger = 105; // но не больше 105
                            ta1.append("Мммм....Вкуснятина!!\n");
                            ta1.append("Голод " + z1.name + " увеличился на 40 пунктов\n");
                        } else ta1.append("Животное " + z1.name + " не кушает этого!\n");
                    }
                }
                for (Wild z1 : w1) {
                    z1.hunger -= 10;
                    if (z1.hunger < 0) z1.hunger = 0;
                }
                for (Pet z1 : p1) {
                    z1.hunger -= 5;
                    if (z1.hunger < 0) z1.hunger = 0;
                }
                for (Wild z1 : w1) {
                    if (z1.hunger == 0) {
                        z1.health -= 5;
                        if (z1.health < 0) z1.health = 0;
                    }
                }
                for (Pet z1 : p1) {
                    if (z1.hunger == 0) {
                        z1.health -= 5;
                        if (z1.health < 0) z1.health = 0;
                    }
                }
                Iterator<Wild> wild2 = w1.iterator();
                while (wild2.hasNext()) {
                    Wild next = wild2.next();
                    if (next.health == 0) {
                        WildAnimalDiedFromHunger++;
                        ta1.append(next.name + " умер от голода\n");
                        wild2.remove();
                    }
                }
                Iterator<Pet> pet2 = p1.iterator();
                while (pet2.hasNext()) {
                    Pet next = pet2.next();
                    if (next.health == 0) {
                        PetAnimalDiedFromHunger++;
                        ta1.append(next.name + " умер от голода\n");
                        pet2.remove();
                    }
                }
                for (Wild z1 : w1) {
                    z1.age -= 0.5;
                    if (z1.age < 0) z1.age = 0;
                }
                for (Pet z1 : p1) {
                    z1.age -= 0.5;
                    if (z1.age < 0) z1.age = 0;
                }
                Iterator<Wild> wild1 = w1.iterator();
                while (wild1.hasNext()) {
                    Wild next = wild1.next();
                    if (next.age == 0) {
                        WildAnimalDiedFromAging++;
                        ta1.append(next.name + " умер от старости\n");
                        wild1.remove();
                    }
                }
                Iterator<Pet> pet1 = p1.iterator();
                while (pet1.hasNext()) {
                    Pet next = pet1.next();
                    if (next.age == 0) {
                        PetAnimalDiedFromAging++;
                        ta1.append(next.name + " умер от старости\n");
                        pet1.remove();
                    }
                }
                NumberOfTurns++;
                score.setText("<html>Сделано ходов: " + NumberOfTurns + "Осталось в живых: Домашних:" + p1.size() + "/" + pp1 + ", Диких:" + w1.size() + "/" + ww1 + "<br>"
                        + "Умерло от голода: Домашних: " + PetAnimalDiedFromHunger + ", Диких:" + WildAnimalDiedFromHunger + "<br>"
                        + "Умерло от старости: Домашних: " + PetAnimalDiedFromAging + ", Диких:" + WildAnimalDiedFromAging + "</html>");
            } else {
                int score = ((PetAnimalDiedFromAging+WildAnimalDiedFromAging)*20 - (WildAnimalDiedFromHunger+PetAnimalDiedFromHunger)*10);
                ta1.append("Игра окончена! Вы набрали: " + score + " очков\n");
                b1.setText("Новая Игра");
                b1.addActionListener(AL1);
 
            }
        }
    }
 
    public class Status implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            ta1.setText("Животные: \n");
            for (Wild a : w1) {
                String b = a.toString();
                ta1.append(b + "\n");
            }
            for (Pet a : p1) {
                String b = a.toString();
                ta1.append(b + "\n");
            }
            ta1.append("Пища: \n");
            Food b1 = new Food();
            ArrayList<String> s1 = null;
            try {
                s1 = b1.getAllFood();
            } catch (IOException g) {
                g.printStackTrace();
            }
            for (String a: s1) {
                String b = a.toString();
                ta1.append(b + "\n");
            }
 
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.1 из 5