Некорректно работает 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"); } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д