JAVA awt eventqueue_線程“AWT-EventQueue-1”中的異常java.lang.NullPointerException

嗨,我收到錯誤

Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException

at P6.itemStateChanged(P6.java:215)

at javax.swing.AbstractButton.fireItemStateChanged(AbstractButton.java:2

023)

at javax.swing.AbstractButton$Handler.itemStateChanged(AbstractButton.ja

va:2325)

at javax.swing.DefaultButtonModel.fireItemStateChanged(DefaultButtonMode

l.java:440)

at javax.swing.JToggleButton$ToggleButtonModel.setSelected(JToggleButton

.java:255)

at javax.swing.ButtonGroup.setSelected(ButtonGroup.java:147)

at javax.swing.JToggleButton$ToggleButtonModel.setSelected(JToggleButton

.java:237)

at javax.swing.JToggleButton$ToggleButtonModel.setPressed(JToggleButton.

java:272)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonL

istener.java:236)

at java.awt.Component.processMouseEvent(Component.java:6267)

at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)

at java.awt.Component.processEvent(Component.java:6032)

at java.awt.Container.processEvent(Container.java:2041)

at java.awt.Component.dispatchEventImpl(Component.java:4630)

at java.awt.Container.dispatchEventImpl(Container.java:2099)

at java.awt.Component.dispatchEvent(Component.java:4460)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577

)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)

at java.awt.Container.dispatchEventImpl(Container.java:2085)

at java.awt.Component.dispatchEvent(Component.java:4460)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThre

ad.java:269)

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.

java:184)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre

ad.java:174)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)在

import java.awt.Color;

import java.awt.Container;

import java.awt.FlowLayout;

import java.awt.Font;

import java.awt.Graphics;

import java.awt.event.ItemEvent;

import java.awt.event.ItemListener;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import java.awt.event.MouseMotionListener;

import javax.swing.ButtonGroup;

import javax.swing.JApplet;

import javax.swing.JComboBox;

import javax.swing.JRadioButton;

public class P6 extends JApplet implements MouseListener, MouseMotionListener, ItemListener

{

private final int RED = 1;

private final int ORANGE = 2;

private final int YELLOW = 3;

private final int GREEN = 4;

private final int BLUE = 5;

private final int CYAN = 6;

private final int PINK = 7;

private final int MAGENTA =8;

private final int BLACK = 9;

private final int ARC = 1;

private final int LINE = 2;

private final int OVAL = 3;

private final int RECT = 4;

private final int POLY = 5;

private String[] colorNames = { "Red", "Orange", "Yellow", "Green", "Blue",

"Cyan", "Pink", "Magenta", "Black"};

private JComboBox colorComboBox;

private JRadioButton jrbArc;

private JRadioButton jrbLine;

private JRadioButton jrbOval;

private JRadioButton jrbRect;

private JRadioButton jrbPolygon;

private int color = 0;

private int shape = 0;

private int x1;

private int y1;

private int x2;

private int y2;

public void init()

{

Container c = getContentPane();

c.setLayout( new FlowLayout() );

c.setBackground( Color.orange );

JComboBox colorComboBox = new JComboBox(colorNames);

colorComboBox.addItemListener(this);

JRadioButton jrbArc = new JRadioButton("Arc");

jrbArc.addItemListener(this);

JRadioButton jrbLine = new JRadioButton("Line");

jrbLine.addItemListener(this);

JRadioButton jrbOval = new JRadioButton("Oval");

jrbOval.addItemListener(this);

JRadioButton jrbRect = new JRadioButton("Rectangle");

jrbRect.addItemListener(this);

JRadioButton jrbPolygon = new JRadioButton("Polygon");

jrbPolygon.addItemListener(this);

ButtonGroup btg = new ButtonGroup();

btg.add(jrbArc);

c.add(jrbArc);

btg.add(jrbLine);

c.add(jrbLine);

btg.add(jrbOval);

c.add(jrbOval);

btg.add(jrbRect);

c.add(jrbRect);

btg.add(jrbPolygon);

c.add(jrbPolygon);

c.add(colorComboBox);

addMouseMotionListener(this);

addMouseListener(this);

}

public void paint(Graphics g)

{

super.paint(g);

g.setColor(Color.white);

g.fillRect(20, 50, 500, 500);

g.setFont( new Font("Serif", Font.ITALIC+Font.BOLD, 18));

g.setColor(Color.black);

g.drawString("Start Here!", 10, 50);

g.drawString("End Here!", 510, 560);

switch (this.color)

{

case 1:

g.setColor(Color.red);

break;

case 2:

g.setColor(Color.orange);

break;

case 3:

g.setColor(Color.yellow);

break;

case 4:

g.setColor(Color.green);

break;

case 5:

g.setColor(Color.blue);

break;

case 6:

g.setColor(Color.cyan);

break;

case 7:

g.setColor(Color.pink);

break;

case 8:

g.setColor(Color.magenta);

break;

case 9:

g.setColor(Color.black);

break;

}

switch (shape)

{

case 1:

g.fillArc(this.x1, this.y1, this.x2 - this.x1, this.y2 - this.y1, 0, 90);

g.fillArc(this.x1, this.y1, this.x2 - this.x1, this.y2 - this.y1, 180,90);

break;

case 2:

g.drawLine(this.x1, this.y1, this.x2, this.y2);

break;

case 3:

g.fillOval(this.x1, this.y1, this.x2 - this.x1, this.y2 - this.y1);

break;

case 4:

g.fillRect(this.x1, this.y1, this.x2 - this.x1, this.y2 - this.y1);

break;

case 5:

int[] arr1 = { this.x1, this.x2, this.x1, this.x2, this.x1};

int[] arr2 = { this.y1, this.y1, this.y2 ,this.y2, this.y1};

g.fillPolygon(arr1, arr2, 5);

break;

}

}

public void mousePressed( MouseEvent e)

{

this.x1 = e.getX();

this.y1 = e.getY();

}

public void mouseDragged( MouseEvent e)

{

this.x2 = e.getX();

this.y2 = e.getY();

}

public void mouseReleased( MouseEvent e)

{

this.x2 = e.getX();

this.y2 = e.getY();

}

public void mouseClicked( MouseEvent e)

{

}

public void mouseEntered( MouseEvent e)

{

}

public void mouseExited( MouseEvent e)

{

}

public void mouseMoved( MouseEvent e)

{

showStatus( " (" + e.getX() + ", " + e.getY() +")");

}

public void itemStateChanged(ItemEvent i)

{

if(this.jrbArc.isSelected())

this.shape = ARC;

else if( this.jrbLine.isSelected())

this.shape = LINE;

else if( this.jrbOval.isSelected())

this.shape = OVAL;

else if( this.jrbRect.isSelected())

this.shape = RECT;

else if( this.jrbPolygon.isSelected())

this.shape = POLY;

this.color = ( this.colorComboBox.getSelectedIndex() + 1 );

repaint();

}

}我一直在想這個,但沒有運氣。

請幫忙嗎?

215行是:

if(this.jrbArc.isSelected())

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/529377.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/529377.shtml
英文地址,請注明出處:http://en.pswp.cn/news/529377.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java構造方法賦值內存圖_java 面向對象(九):類的結構:構造器(一)簡介;屬性賦值順序;JavaBean的概念...

1.構造器(或構造方法):Constructor構造器的作用:* 1.創建對象* 2.初始化對象的信息2.使用說明:* 1.如果沒顯式的定義類的構造器的話,則系統默認提供一個空參的構造器* 2.定義構造器的格式:權限修飾符 類名(形參列表){}…

java 集合modcount_源碼|jdk源碼之LinkedList與modCount字段

鏈表是對上一篇博文所說的順序表的一種實現。與ArrayList思路截然不同,鏈表的實現思路是:不同元素實際上是存儲在離散的內存空間中的。每一個元素都有一個指針指向下一個元素,這樣整個離散的空間就被“串”成了一個有順序的表。從鏈表的概念來…

idea 新建ssm java ee_IDEA搭建SSM項目實現增刪改查

首先打開IDEA,File—>New—>Project創建項目選擇左側導航欄里的Maven,勾上勾,選擇webapp按如下圖進行填寫創建完成后進入項目,右下角彈出的提示點擊右邊的Enable Auto-Import,自動配置連接數據庫,我用…

php mail centos_centos怎么發送郵件

一、安裝sendmail與mail1、安裝sendmail:1) centos下可以安裝命令:yum -y install sendmail2) 安裝完后啟動sendmail命令:service sendmail start2、安裝mail安裝命令:yum install -y mailx二、發送郵件1、通過文件內容發送發送命…

php文件的作用,php入口文件的作用-PHP問題

php入口文件的作用php入口文件能夠完成主動加載性能。解析PHP入口文件的主動加載性能php的主動加載:正在php5之前,咱們要用某個類或類的辦法,那必需include或許require,之后能力應用,每一次用一個類,都需求…

emacs php 配置文件,如何配置emacs進行正確的PHP開發?

我使用web模式(http://web-mode.org/)混合HTML / PHP文件和php模式為純PHP文件.最新版本的php-mode還推薦使用混合HTML / PHP文件的Web模式:https://github.com/ejmr/php-mode#avoid-html-template-compatibility.不同于其他模式,如mmm模式,mumamo或多網絡模式,嘗試…

php 5.3.9 漏洞,PHP-5.3.9遠程執行任意代碼漏洞(CVE-2012-0830) 詳解

這個新的修復方法初衷是好的, 但是卻帶來一個嚴重的問題(5.3.10中已經修復), 這個問題最初是由Stefan Esser發現的. 請看之前(5.3.9)最終的修復方案(php_register_variable_ex):代碼如下while (1) {if (zend_symtable_find(symtable1, escaped_index, index_len 1, (void **) …

java中隨機數邊界問題,java 簡單Dice問題(隨機數的運用)

[java]代碼庫/*** Dice Write a program that simulates rolling two dice using the following* steps: 1. Prompt the user for the number of sides for two dice. 2. “Roll” the* dice three times by generating a random number between 1 (inclusive) and the* number…

php 正則替換 ubb,php實現過濾UBB代碼的類

本文實例講述了php實現過濾UBB代碼的類。分享給大家供大家參考。具體如下:PHP代碼如下:class Day{function ubb($Text) { /// UBB代碼轉換//$Texthtmlspecialchars($Text);//$Textereg_replace("\r\n","",$Text);$Textereg_rep…

java單詞測試,java單詞 - 在線打字測試(dazi.kukuw.com)

java單詞貢獻者:15533470608類別:英文 時間:2018-08-04 22:32:16 收藏數:20 評分:0返回上頁舉報此文章請選擇舉報理由:廣告/謠言/欺詐政治敏感色情/違法信息垃圾文章其他收藏到我的文章改錯字public static…

java vector list,Java基礎之:List——ArrayList Vector

Java基礎之:List——ArrayList & VectorArrayList簡單介紹ArrayList實現了List接口,底層是一個數組,并實現了可變的功能。底層屬性(transient Object[] elementData;)在序列化時,忽略該屬性。ArrayList實現了List接口&#xf…

java建立線性表的鏈式結構,數據結構學習----線性表的鏈式表示(Java實現)

線性表接口LList:package com.clarck.datastructure.linked;/*** 線性表接口LList,描述線性表抽象數據類型,泛型參數T表示數據元素的數據類型** author clarck**/public interface LList {/*** 判斷線性表是否空* return*/boolean isEmpty();…

php prepare 批量,PreparedStatement批處理

PreparedStatement批量更新關鍵代碼 無 import java.sql.Connection;import java.sql.PreparedStatement; //...String sql "insert into employee (name, city, phone) values (?, ?, ?)";Connection connection new getConnection();PreparedStatement pPrepa…

釘釘 php 推送,微信模板推送,釘釘信息推送

上午的時候看到有朋友需要微信推送,正好我也需要,之前一直用 Server 醬的,但是最近用不了,想找一個替代品,一開始準備選擇釘釘,除了打卡,我很少使用釘釘,郵件提醒是備用方案&#xf…

java repaint 重畫圖形,學習筆記:WINDOWS的圖形重繪基礎

OnPaint()與OnDraw()的區別:OnPaint是WM_PAINT的消息響應函數,在MFC的基類里OnPaint函數調用了OnDraw()函數。OnPaint函數另外還調用了OnPrepareDC()函數。如果在窗口子類覆蓋了OnPaint函數,當MFC調用我們重寫的OnPaint函數時,就調…

php定義數據表類,phpwind中的數據庫操作類

phpwind中的數據庫操作類2021-01-22 20:12:15141/*來源:phpwind.net*/ClassDB{var$query_num0;functionDB($dbhost,$dbuser,$dbpw,$dbname,$pconnect0){$this->connect($dbhost,$dbuser,$dbpw,$dbname,$pconnect);}functionconnect($dbhost,$dbuser,$dbpw,$dbnam…

渦輪機葉片matlab強度分析論文,一種基于MATLAB及Pro_E的渦輪建模方法

自動化與控制與二一種基于MATLAB及Pro/E的渦輪建模方法王智明(中海油服油田技術事業部北京1011&am…

基于matlab的傳熱學虛擬實驗開發,基于MATLAB的傳熱學課程虛擬實驗軟件的開發

215教育現代化2018 年 12 月第 49 期 教育信息技術 基于 MATLAB 的傳熱學課程虛擬實驗軟件的開發 周永利,李友榮,石萬元,張力元,楊晨,卞煜,王國強,李俊,包鍵 ( 重慶大學 低品位能源利…

java做 binggo,Linux啟動與停止spring boot工程的腳本示例

在springboot項目啟動有三種方式:1、運行主方法程序2、使用命令mvn spring-boot:run 在命令行運行3、使用 mvn packpage打包位jar文件以后,使用java -jar yourapp.jar命令行運行一般我們在開發的時候經常使用的是前面兩種運行方式,在部署實施…

php計劃任務 框架,計劃任務的使用 ThinkCMF內容管理框架,做最簡約的ThinkPHP開源軟件...

1、先不管是是否是獨立分組,必須在Application\common\項目名下的Conf文件夾內創建2個文件一個是tags.php(項目默認有,直接加入需要執行的代碼即可) 一個是 crons.php。注意這兩個文件名為thinkphp標準文件名,不可以改變tages.php內容是&…