問題:我試圖添加多個使用Java內置圖形方法的方法。繪製屏幕的方法使用if語句。當actionListener被激活時,製作一個繪製applet的方法
我試過了:玩弄方法名稱並更改(圖形g)中的字符。此外,我試圖將我遇到問題的方法放入paint方法塊中。
中使用的變量:
- 字長=存儲的字的量具有一定長度的數組。例如。如果我有1個1個字母的單詞,wordLengths [0]將爲1。
以下代碼打印我的聲母,空白出來的文字字段和油漆圖表的x和y軸:
public void paint(Graphics g) {
g.drawString("BWD", 450, 490); // Puts my signature in the bottom corner
inputField.setText("");
inputText = ("");
g.drawLine(50, 450, 460, 450);//Paints x-axis
g.drawLine(50, 450, 50, 100);//Paints the y-axis
}
下面的代碼具有的方法名稱塗料。我試圖改變這一點,但它仍然返回問題。當點擊提交按鈕,我想下面的代碼繪製到屏幕上:
public void paint (Graphics g)
{
for(int j=0, x=50, y = 100; j< wordLengths.length;j++)
{
if (wordLengths[j] == 1)
{
y = y+15;
g.drawString(wordLengths[j]+ " word of length "+ (j+1), x, y);
}
g.drawString("There are: ", 50, 90);
if (wordLengths[j] > 1)
{
y = y+15;
g.drawString(wordLengths[j]+ " words of length "+ (j+1), x, y);
}
}
}
理想的代碼會是這樣:
public void paint(Graphics g) {
g.drawString("BWD", 450, 490); // Puts my signature in the bottom corner
inputField.setText("");
inputText = ("");
g.drawLine(50, 450, 460, 450);//Paints x-axis
g.drawLine(50, 450, 50, 100);//Paints the y-axis
for(int j=0, x=50, y = 100; j< wordLengths.length;j++)
{
if (wordLengths[j] == 1)
{
y = y+15;
g.drawString(wordLengths[j]+ " word of length "+ (j+1), x, y);
}
g.drawString("There are: ", 50, 90);
if (wordLengths[j] > 1)
{
y = y+15;
g.drawString(wordLengths[j]+ " words of length "+ (j+1), x, y);
}
}
}
如果需要任何其他信息,請不要猶豫添加評論,我會盡快收錄它!
在此先感謝!
Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException
at java_assignment.JavaAppletMain.paint(JavaAppletMain.java:114)
at sun.awt.RepaintArea.paintComponent(RepaintArea.java:264)
at sun.lwawt.LWRepaintArea.paintComponent(LWRepaintArea.java:54)
at sun.awt.RepaintArea.paint(RepaintArea.java:240)
at sun.lwawt.LWComponentPeer.handleJavaPaintEvent(LWComponentPeer.java:1267)
at sun.lwawt.LWComponentPeer.handleEvent(LWComponentPeer.java:1150)
at java.awt.Component.dispatchEventImpl(Component.java:4937)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
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))
Thread [AWT-EventQueue-1] (Suspended (breakpoint at line 112 in JavaAppletMain))
JavaAppletMain.paint(Graphics) line: 112
LWRepaintArea(RepaintArea).paintComponent(Component, Graphics) line: 264
LWRepaintArea.paintComponent(Component, Graphics) line: 54
LWRepaintArea(RepaintArea).paint(Object, boolean) line: 240
LWPanelPeer(LWComponentPeer<T,D>).handleJavaPaintEvent() line: 1267
LWPanelPeer(LWComponentPeer<T,D>).handleEvent(AWTEvent) line: 1150
JavaAppletMain(Component).dispatchEventImpl(AWTEvent) line: 4937
JavaAppletMain(Container).dispatchEventImpl(AWTEvent) line: 2287
JavaAppletMain(Component).dispatchEvent(AWTEvent) line: 4687
EventQueue.dispatchEventImpl(AWTEvent, Object) line: 735
EventQueue.access$200(EventQueue, AWTEvent, Object) line: 103
EventQueue$3.run() line: 694
EventQueue$3.run() line: 692
AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not available [native method]
ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext, AccessControlContext) line: 76
ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext) line: 87
EventQueue$4.run() line: 708
EventQueue$4.run() line: 706
AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not available [native method]
ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext, AccessControlContext) line: 76
EventQueue.dispatchEvent(AWTEvent) line: 705
EventDispatchThread.pumpOneEventForFilters(int) line: 242
EventDispatchThread.pumpEventsForFilter(int, Conditional, EventFilter) line: 161
EventDispatchThread.pumpEventsForHierarchy(int, Conditional, Component) line: 150
EventDispatchThread.pumpEvents(int, Conditional) line: 146
EventDispatchThread.pumpEvents(Conditional) line: 138
EventDispatchThread.run() line: 91
究竟是什麼問題?你的'paint()'方法是否啓動? –
當我在發佈的第一個代碼塊中包含if語句時,它會返回致命錯誤。 – bradleyduncan
然後在這裏粘貼堆棧跟蹤(錯誤)。 –