0
我有以下的代碼Nullpointexception試圖劃清界限
首先兩段代碼:
package guicollection;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class RectanglePattern extends GUIcollection implements ActionListener {
JPanel panelForBackGround;
JButton actionButton;
void drawRectangle() {
RectanglePattern outSideCover = new RectanglePattern();
outSideCover.setSize(500, 500);
outSideCover.createGUI();
outSideCover.setVisible(true);
}
private void createGUI() {
setDefaultCloseOperation(EXIT_ON_CLOSE);
Container window = getContentPane();
window.setLayout(new FlowLayout());
panelForBackGround = new JPanel();
panelForBackGround.setPreferredSize(new Dimension(400, 300));
panelForBackGround.setBackground(Color.blue);
window.add(panelForBackGround);
actionButton = new JButton("Press me");
window.add(actionButton);
actionButton.addActionListener(this);
}
public void actionPerformed(ActionEvent event) {
Graphics paper = panelForBackGround.getGraphics();
paper.drawLine(0, 0, 9, 10);
paper.drawRect(8, 8, 12, 9);
paper.drawRect(6, 6, 12, 6);
}
}
和第二碼:
package guicollection;
import java.awt.*;
import javax.swing.*;
public class RectanglePattern extends GUIcollection{
JPanel panelForBackGround;
JButton actionButton;
void drawRectangle() {
RectanglePattern outSideCover = new RectanglePattern();
outSideCover.setSize(500, 500);
outSideCover.createGUI();
outSideCover.setVisible(true);
}
private void createGUI() {
setDefaultCloseOperation(EXIT_ON_CLOSE);
Container window = getContentPane();
window.setLayout(new FlowLayout());
panelForBackGround = new JPanel();
panelForBackGround.setPreferredSize(new Dimension(400, 300));
panelForBackGround.setBackground(Color.blue);
window.add(panelForBackGround);
actionButton = new JButton("Press me");
window.add(actionButton);
actionButton.addActionListener(this);
Graphics paper = panelForBackGround.getGraphics();
paper.drawLine(0, 0, 9, 10);
paper.drawRect(8, 8, 12, 9);
paper.drawRect(6, 6, 12, 6);
}
}
第二個代碼顯示了以下錯誤而編譯。是不是必須在panelForBackGround
上畫一條線和兩個矩形?這個錯誤的原因是什麼?
錯誤:
Exception in thread "main" java.lang.NullPointerException at guicollection.RectanglePattern.drawRectangle(RectanglePattern.java:20) at guicollection.GUIcollection.main(GUIcollection.java:24)
你調試了你的代碼,並從哪裏發現nullPointerException被拋出? – Smit
我想不通。它只給出錯誤信息。我是一個新的bie。 – user1837224
那麼在這種情況下,請點擊此鏈接。這對Eclipse調試有非常好的教程。 www.comscigate.com/debug/learn_Debug.htm – Smit