Member 12943657 Ответов: 1

Очень простой вопрос ООП


Привет,
моя задача-смоделировать радио с помощью ООП.

У меня есть 3 класса: класс GUI для радио с меткой "lblFreq", класс для различных каналов, которые я хочу создать "Sender.java - и контрольный класс для выполнения различных задач.

Мои каналы имеют 2 атрибута:" Freq "для частоты (двойной) и" Channel " для имени канала (строка).
public class Sender {
  
  private double Freq;
  private String Channel;
  
  public Sender(double Freq, String Channel) {
    this.Freq = Freq;
    this.Channel = Channel;
  }

  public double getFreq() {
    return Freq;
  }

  public String getChannel() {
    return Channel;
  }

}


мой контрольный класс должен заполнить его именем и частотой:
public class Steuerung {
  
  private RadioGUI dieGUI;
  private Sender dieSender;
  Sender bigFM = new Sender(89.5, "BigFM");


}


и я хочу показать частоту в метке в моем графическом интерфейсе, когда я нажимаю кнопку " btnForward":

 private Steuerung dieST;
(....)
 public void btnForward_ActionPerformed(ActionEvent evt) {
    lblFreq.setText(String.valueOf(dieST.bigFM.getFreq()));
    
  }


Я получаю сообщение об ошибке, как только нажимаю эту кнопку, журнал ошибок находится ниже.

Я думаю, это потому, что я что-то испортил в
lblFreq.setText(String.valueOf(dieST.bigFM.getFreq()));

Я думаю.

Спасибо за любую помощь.


Журнал ошибок:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at RadioGUI.btnForward_ActionPerformed(RadioGUI.java:249)
	at RadioGUI$2.actionPerformed(RadioGUI.java:77)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at java.awt.Component.processMouseEvent(Component.java:6505)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
	at java.awt.Component.processEvent(Component.java:6270)
	at java.awt.Container.processEvent(Container.java:2229)
	at java.awt.Component.dispatchEventImpl(Component.java:4861)
	at java.awt.Container.dispatchEventImpl(Container.java:2287)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
	at java.awt.Container.dispatchEventImpl(Container.java:2273)
	at java.awt.Window.dispatchEventImpl(Window.java:2719)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
	at java.awt.EventQueue.access$200(EventQueue.java:103)
	at java.awt.EventQueue$3.run(EventQueue.java:694)
	at java.awt.EventQueue$3.run(EventQueue.java:692)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.awt.EventQueue$4.run(EventQueue.java:708)
	at java.awt.EventQueue$4.run(EventQueue.java:706)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)


Что я уже пробовал:

Пробовал другие коды в lblFreq. setText... но в основном все заканчивалось той же ошибкой или даже не начиналось.

[no name]

"NullPointerException" означает только то, что вы пытаетесь использовать объект или свойства или метод объекта, который является нулевым. Вам нужно научиться использовать свой отладчик для поиска и устранения подобных проблем. Из вашего примера кода я должен был бы предположить, что dieST равен null, так как вы нигде не показываете, что он создается.

Member 12943657

Вау, спасибо, я совсем забыла об этом! Починил его, Спасибо!

1 Ответов

Рейтинг:
1

NotPolitcallyCorrect

Опубликовано как решение для удаления из списка без ответа.

"NullPointerException" означает только то, что вы пытаетесь использовать объект или свойства или метод объекта, который является нулевым. Вам нужно научиться использовать свой отладчик для поиска и устранения подобных проблем. Из вашего примера кода я должен был бы предположить, что dieST равен null, так как вы нигде не показываете, что он создается.