gpt4 book ai didi

Java GUI 空白和空指针异常

转载 作者:行者123 更新时间:2023-12-02 07:10:23 24 4
gpt4 key购买 nike

我现在修复了这个问题,当我单击计算按钮时,我会得到以下信息:

现在除了计算按钮之外的所有功能都可以正常工作,这是最重要的部分。预先感谢大家的帮助。

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Radio$CalcButtonListener.actionPerformed(Radio.java:76)
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$200(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$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.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$1.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)






import java.awt.*;
import java.awt.event.*;
import javax.swing.*;




public class Radio extends JFrame
{

private JPanel Panel;
private JPanel buttonPanel;
private JTextField base;
private JTextField width;
private JRadioButton squareArea;
private JRadioButton parallelogramArea;
private final int WINDOW_WIDTH = 550;
private final int WINDOW_HEIGHT = 550;
double pTotal;
double sTotal;

public Radio()
{
setSize(WINDOW_WIDTH, WINDOW_HEIGHT);
setTitle("Area Calculator");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
buildPanel();
add(Panel);

}


private void buildPanel()
{
Panel = new JPanel();
JLabel messageLabel1 = new JLabel("Please enter the base: ");
JTextField base = new JTextField(10);
JLabel messageLabel2 = new JLabel("Please enter the width: ");
JTextField width = new JTextField(10);
JRadioButton squareArea = new JRadioButton("Choice 1", true);
JRadioButton parallelogramArea = new JRadioButton("Choice 2");
ButtonGroup group = new ButtonGroup();
JButton calcButton = new JButton("Calculate");
calcButton.setBackground(Color.BLUE);
calcButton.setForeground(Color.PINK);
calcButton.addActionListener(new CalcButtonListener());
Panel.add(messageLabel1);
Panel.add(base);
Panel.add(messageLabel2);
Panel.add(width);
group.add(squareArea);
group.add(parallelogramArea);
Panel.add(squareArea);
Panel.add(parallelogramArea);
Panel.add(calcButton);
}




public static void main (String[] args)
{

Radio radio = new Radio();
radio.buildPanel();
}

private class CalcButtonListener implements ActionListener
{

public void actionPerformed(ActionEvent e)
{


if (parallelogramArea.isSelected());
{
pTotal = Double.parseDouble(base.getText()) * Double.parseDouble(width.getText());
JOptionPane.showMessageDialog(null, "The Area is: " + pTotal);
}


if (squareArea.isSelected())
{

sTotal = Double.parseDouble(base.getText()) * Double.parseDouble(width.getText());
JOptionPane.showMessageDialog(null, "The Area is: " + sTotal);
}
}
}
}

最佳答案

我认为您的 buttonPanel 为空。但是您可以逐行调试代码来找出其中哪一个为空

关于Java GUI 空白和空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15602579/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com