为了账号安全,请及时绑定邮箱和手机立即绑定

JFrame的repaint()无效

JFrame的repaint()无效

阿波罗的战车 2019-02-24 19:32:20
package com.elyong.noway; /** * Created by ely ong on 2017/11/27. */ import javax.swing.*; import java.awt.*; import java.awt.event.*; public class SimpleGui3C implements ActionListener{ JFrame frame; public static void main(String[] args){ SimpleGui3C gui=new SimpleGui3C(); gui.go(); } public void go(){ JFrame frame=new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JButton button=new JButton("Change colors"); button.addActionListener(this); MyDrawPanel drawPanel=new MyDrawPanel(); frame.getContentPane().add(BorderLayout.SOUTH,button); frame.getContentPane().add(BorderLayout.CENTER,drawPanel); frame.setSize(300,300); frame.setVisible(true); } public void actionPerformed(ActionEvent event){ frame.repaint(); } } class MyDrawPanel extends JPanel{ public void paintComponent(Graphics g){ Graphics2D g2d=(Graphics2D) g; int red=(int)(Math.random()*255); int green=(int)(Math.random()*255); int blue=(int)(Math.random()*255); Color startColor=new Color(red,green,blue); red=(int)(Math.random()*255); green=(int)(Math.random()*255); blue=(int)(Math.random()*255); Color endColor=new Color(red,green,blue); GradientPaint gradient=new GradientPaint(70,70,startColor,150,150,endColor); g2d.setPaint(gradient); g2d.fillOval(70,70,100,100); } } 目的是写一个按下按钮圆圈就会改变颜色的程序。错误: Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at com.elyong.noway.SimpleGui3C.actionPerformed(SimpleGui3C.java:27) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348) 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:6533) at javax.swing.JComponent.processMouseEvent(JComponent.java:3324) at java.awt.Component.processEvent(Component.java:6298) at java.awt.Container.processEvent(Container.java:2236) at java.awt.Component.dispatchEventImpl(Component.java:4889) at java.awt.Container.dispatchEventImpl(Container.java:2294) at java.awt.Component.dispatchEvent(Component.java:4711) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466) at java.awt.Container.dispatchEventImpl(Container.java:2280) at java.awt.Window.dispatchEventImpl(Window.java:2746) at java.awt.Component.dispatchEvent(Component.java:4711) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90) at java.awt.EventQueue$4.run(EventQueue.java:731) at java.awt.EventQueue$4.run(EventQueue.java:729) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 789 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信