Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.04.2016, 11:49   #1
stiznt
Новичок
Джуниор
 
Регистрация: 13.04.2016
Сообщений: 2
По умолчанию Маленькая программа на Java выдаёт ошибку

Я создаю маленькую программку, но при нажатии на кнопку у меня выводит ошибку.
вот
Класс Main
Код:
package ru.stiznt.Core;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;

import javax.swing.JButton;
import javax.swing.JLabel;

public class Main {
	
	Listener list = new Listener();
	int h,mh,m,a;
	JButton b1, b2, b3, b4,jb1;
	JLabel l1, l2;
	Random r = new Random();
	String s1, s2;
	
	public void Window(){
		mh = 250;
		b1 = new JButton("Работа");
		b2 = new JButton("Отдых");
		b3 = new JButton("Счастье");
		b4 = new JButton("Магазин");
		l1 = new JLabel("Здоровье:"+h+"/"+mh);
		l2 = new JLabel("Деньги:"+m);
		
		b1.addActionListener(list);
		b2.addActionListener(list);
		b3.addActionListener(list);
		b4.addActionListener(list);
		
		
	}
	
	public void openWindowJob(){
		Job job = new Job("Работа");
		job.setSize(300, 200);
		job.setVisible(true);
	}
	
	public void job(){
		jb1 = new JButton("Рыскать по помойкам");
		
		jb1.addActionListener(list);
	}
	
	public class Listener implements ActionListener{

		
		
		public void actionPerformed(ActionEvent e) {
			if(e.getSource()==b1){
				openWindowJob();
			}
			if(e.getSource()==jb1){
				a = r.nextInt(5);
				h = h - 5;
				m = m+ a;
				s1 = "Здоровье:"+h+"/"+mh;
				s2 = "Деньги:"+m;
				l1.setText(s1);
				l2.setText(s2);
			}
			
		}
		
	}
}
Класс Job:
Код:
package ru.stiznt.Core;

import java.awt.FlowLayout;

import javax.swing.JFrame;

public class Job extends JFrame{
	Main main = new Main();
	public Job(String s){
		super(s);
		main.job();
		setLayout(new FlowLayout());
		
		
		
		add(main.jb1);
		
		
	}
}
Класс window:
Код:
package ru.stiznt.Core;


import java.awt.FlowLayout;
import javax.swing.JFrame;




public class window extends JFrame{
	Main main  = new Main();
	
	public window(String s){
		super(s);
		setLayout(new FlowLayout());
		main.Window();
		
		add(main.l1);
		add(main.l2);
		add(main.b2);
		add(main.b3);
		add(main.b4);
		add(main.b1);
	}
}
И Класс Core:
Код:
package ru.stiznt.Core;

import javax.swing.JFrame;





public class Core {
	public static void main(String args[]){
		
		window w = new window("Тест");
		
		
		//Главное окно
		w.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		w.setResizable(false);
		w.setLocationRelativeTo(null);
		w.setSize(200, 125);
		w.setVisible(true);
		
		//Магазин
		
	}
}
Заранее спасибо)

_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 13.04.2016 в 13:13.
stiznt вне форума Ответить с цитированием
Старый 13.04.2016, 12:13   #2
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Код оформите по правилам пожалста.
Что за ошибку то выводит?
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 14.04.2016, 10:02   #3
stiznt
Новичок
Джуниор
 
Регистрация: 13.04.2016
Сообщений: 2
По умолчанию

Цитата:
Сообщение от WorldMaster Посмотреть сообщение
Код оформите по правилам пожалста.
Что за ошибку то выводит?
Извиняюсь, что не оформил код.
Вот ошибка:
Код:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at ru.stiznt.Core.Main$Listener.actionPerformed(Main.java:63)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$500(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

Последний раз редактировалось Alex11223; 14.04.2016 в 10:33.
stiznt вне форума Ответить с цитированием
Старый 14.04.2016, 22:09   #4
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Проверьте код вот тут в отладчике:
Код:
if(e.getSource()==b1){
				openWindowJob();
			}
			if(e.getSource()==jb1){
				a = r.nextInt(5);
				h = h - 5;
				m = m+ a;
				s1 = "Здоровье:"+h+"/"+mh;
				s2 = "Деньги:"+m;
				l1.setText(s1);
				l2.setText(s2);
			}
Наверное e равна null
Либо дальше в обработчике встречается недействительная ссылка.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программа для вычисления тангенсов выдаёт ошибку ak.lexa1998 Паскаль, Turbo Pascal, PascalABC.NET 7 08.04.2015 12:05
Программа с WebBrowser выдаёт ошибку paxan86 Общие вопросы Delphi 30 22.11.2011 20:37
при попытке запустить >java ImageViewer выдаёт ошибку TDrive Общие вопросы по Java, Java SE, Kotlin 7 18.08.2011 21:52
Программа выдаёт ошибку, не пойму, как исправить. Яна Гришина Помощь студентам 14 06.08.2011 18:43
программа выдаёт ошибку brans Microsoft Office Excel 3 24.10.2010 13:55