мну довольно <(-__-)l
217 / 206 / 15
Регистрация: 17.01.2010
Сообщений: 2,462
1

NullPointerException

20.02.2011, 19:52. Показов 3279. Ответов 25
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Java
1
2
3
image = createImage(this.getSize().width,this.getSize().height);
bg=image.getGraphics();
bg.setColor(c1);
вызывает ошибку java.lang.NullPointerException

Добавлено через 16 секунд
как с этим бороться?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.02.2011, 19:52
Ответы с готовыми решениями:

Обработка NullPointerException
Здравствуйте! При работе программы иногда появляется необработанное исключение...

Исключение nullPointerException
Существуют два класса контроллера, из класса controllerCashier я вызываю класс controllerPayMent,...

java.lang.NullPointerException
Всем привет! В Яве совсем недавно... вот и возникла проблема... Формулировка задачи... учет...

Получение данных из mysql и NullPointerException
Добрый день. Имею 2 однотипных класса с разными таблицами. В одну таблицу загружаются данные из...

25
Эксперт JavaЭксперт С++
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
20.02.2011, 19:56 2
На какой строке вываливается исключение?
0
мну довольно <(-__-)l
217 / 206 / 15
Регистрация: 17.01.2010
Сообщений: 2,462
20.02.2011, 20:14  [ТС] 3
на третьей, независимо от проводимого действия над bg...
0
Эксперт JavaЭксперт С++
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
20.02.2011, 20:45 4
Приведите минимальную часть кода воспроизводящего ошибку
0
мну довольно <(-__-)l
217 / 206 / 15
Регистрация: 17.01.2010
Сообщений: 2,462
20.02.2011, 20:55  [ТС] 5
приведена в полной мере - остальной код не использует ни один из перечисленных объектов.

bg.setColor(c1); может быть pаменена на bg.draw*/bg.fill* - ошибка сохранится.
с1 - экземпляр класса Color.
0
Эксперт JavaЭксперт С++
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
20.02.2011, 20:59 6
gGrn-7DA, меня не интересует третья строка, это же очевидно, что если bg равен null, то метод не важен
Что за метод createImage?
0
мну довольно <(-__-)l
217 / 206 / 15
Регистрация: 17.01.2010
Сообщений: 2,462
20.02.2011, 21:09  [ТС] 7
С интернета скопипастил, судя по названию должно создать изображение указанного размера, что на самом деле делает не знаю(

Добавлено через 35 секунд
ссылка http://www.heatonresearch.com/... page2.html
0
Эксперт JavaЭксперт С++
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
20.02.2011, 21:27 8
gGrn-7DA, опять таки, у меня все работает, просто скопипастил и запустил
0
мну довольно <(-__-)l
217 / 206 / 15
Регистрация: 17.01.2010
Сообщений: 2,462
20.02.2011, 21:33  [ТС] 9
ага работает у тебя, а у меня нет( ну ладно сдам с мерцанием. преподу без разницы такие тонкости, главное усвоение материала)
0
Эксперт JavaЭксперт С++
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
20.02.2011, 21:35 10
gGrn-7DA, можете выложить архив с проектом, я посмотрю, вы ведь вносили изменения
0
мну довольно <(-__-)l
217 / 206 / 15
Регистрация: 17.01.2010
Сообщений: 2,462
20.02.2011, 21:39  [ТС] 11
вот код. без архива. так сподручнее по мне)
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
import java.awt.*;
import java.awt.geom.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;
import javax.swing.event.*;
 
public class first extends Applet 
            implements  Runnable, ChangeListener, MouseListener, MouseMotionListener{
    JPanel p = new JPanel();
    myCanvas m = new myCanvas();
    JSlider js = new JSlider(JSlider.HORIZONTAL,0,359,0);
    Label l = new Label();
    Thread t = new Thread(this);
    Integer s = 100;
    double x1,y1,dx,dy,sx,sy;
    public void init() {
        setLayout(new BorderLayout());
        p.setLayout(new GridLayout(1,2));
        add("North",p); 
        add("Center",m);
        //js.setPaintTicks(true);
        js.addChangeListener(this);
        l.setText("Направление движения: [0]");
        p.add(l);       
        p.add(js); 
        m.addMouseListener( this );
        m.addMouseMotionListener( this );
    }
    public void start(){
        t=new Thread(this);
        t.start();
        
    }
    public void run()
    {
        while (true)
        {
            m.repaint();
            js.setValue(m.d);
            try
            {
                t.sleep(s);
            }
            catch(InterruptedException e)
            {
            }
        }
    }
    public void setcolor(Integer i){
        m.c1 = new Color(i);
        m.c2 = new Color((256*256*256)-(i+1));
        m.setBackground(m.c1);
    }
    public void setradius(Integer i){
        m.r = i;
    }
    public void setdirection(Integer i){
        m.d = i;
    }
    public void setspeed(Integer i){
        s = 1000/i;
    }
    public void paint(Graphics gr) {
        js.repaint();
    }
    public void stateChanged(ChangeEvent e) {
        l.setText("Направление движения: ["+
            ((JSlider)e.getSource()).getValue()
            +"]");
            m.d=((JSlider)e.getSource()).getValue();
    }
    public void mousePressed(MouseEvent e)
    {
        x1=e.getPoint().x;
        sx=m.X;
        dx=sx-x1;
        y1=e.getPoint().y;
        sy=m.Y;
        dy=sy-y1;
        if((m.r*m.r)>(dx*dx+dy*dy))
            m.state=0;
        dx=dy=0;
    }
    public void mouseReleased(MouseEvent e)
    {
        m.state=1;
    }
    public void mouseEntered(MouseEvent e)
    {
    }
    public void mouseClicked(MouseEvent e)
    {
    }
    public void mouseExited(MouseEvent e)
    {
    }
    public void mouseMoved(MouseEvent e)
    {
    }
    public void mouseDragged(MouseEvent e)
    {
        if(m.state==0){
            dx=e.getPoint().x-x1;
            dy=e.getPoint().y-y1;
            m.X=sx+dx;
            m.Y=sy+dy;
            Double d=Math.atan(-dx/dy)/Math.PI*180;
            if(dy>0)
                m.d=270-d.intValue();
            else
                m.d=90-d.intValue();
        }
    }
    class myCanvas extends Canvas{
        Color c1 = Color.white;
        Color c2 = Color.black;
        Integer r = 15;
        Integer d = 0;
        Integer s = 3;
        Double X=100.0d,Y=100.0d;
        Thread t;
        Integer state = 1;
        //Image image;
        //Graphics bg;
        public void init() {
            //image = createImage(this.getSize().width,this.getSize().height);
            //bg = image.getGraphics();
        }
        public void paint(Graphics gr) {
            Graphics2D g = (Graphics2D)gr;
            g.setColor(c1);
            g.fill(new Ellipse2D.Double(sx, sy, 2*r, 2*r));
            g.setColor(c2);
            //bg=image.getGraphics();
            //bg.setColor(c1);
            Double sx=X-r;
            Double sy=Y-r;
            //bg.fillOval(sx.intValue(), sy.intValue(), 2*r, 2*r);
            //bg.setColor(c2);
            g.setColor(c2);
            if(sx<=0)
                if(d>90&d<270)d=(540-d)%360;
            if(sy<=0)
                if(d>0&d<180)d=360-d;
            if(sx>=(this.getSize().width-2*r))
                if(d<90|d>270)d=(540-d)%360;
            if(sy>=(this.getSize().height-2*r))
                if(d>180)d=360-d;
            if(state==1){
                sx=sx+r*Math.cos(d*Math.PI/180)*1/6;
                sy=sy-r*Math.sin(d*Math.PI/180)*1/6;
                X=sx+r;
                Y=sy+r;
            }
            g.fill(new Ellipse2D.Double(sx, sy, 2*r, 2*r));
            //bg.fillOval(sx.intValue(), sy.intValue(), 2*r, 2*r);
            //gr.drawImage(image,0,0,null);
        }
    }
}
штмл не стал уж выкладывать...
0
Эксперт JavaЭксперт С++
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
20.02.2011, 22:54 12
gGrn-7DA, ну вы знаете ответ? Chrome, FF, Safari, Opera, IE - все работает
0
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
21.02.2011, 14:33 13
Цитата Сообщение от M128K145 Посмотреть сообщение
Что за метод createImage?
java.awt.Component.createImage(int, int)

По исходникам по идее не должен возвращать null, во всяком случае я не нашел такого варианта.

gGrn-7DA, а не на второй строчке, часом, NPE? Вот тут он как раз возможен.
0
мну довольно <(-__-)l
217 / 206 / 15
Регистрация: 17.01.2010
Сообщений: 2,462
21.02.2011, 14:39  [ТС] 14
нет. именно на третьей.
0
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
21.02.2011, 15:13 15
А можно точную версию JVM, на которой такой эффект проявляется? А так же точную весрию OS. Ибо по исходникам 1.6.0_23 null из getGraphics возвращаться не может. Или исключение, или объект.
0
мну довольно <(-__-)l
217 / 206 / 15
Регистрация: 17.01.2010
Сообщений: 2,462
21.02.2011, 16:41  [ТС] 16
M128K145, а вы раскоментировали строки?=)
так получилось)

Добавлено через 2 минуты
ос винда хп 3сп.
Цитата Сообщение от Skipy Посмотреть сообщение
1.6.0_23
именно эта.
0
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
21.02.2011, 17:23 17
Посмотрел код. Начнем с простого вопроса. Где вызывается myCanvas.init?
0
мну довольно <(-__-)l
217 / 206 / 15
Регистрация: 17.01.2010
Сообщений: 2,462
21.02.2011, 18:59  [ТС] 18
нигде.
Java
1
2
3
4
5
6
7
8
public class first{
        myCanvas m = new myCanvas();//возможно тут. 
        public void init() {
                setLayout(new BorderLayout());
                add("Center",m);
                m.addMouseListener( this );
                m.addMouseMotionListener( this );
        }
это все.
ошибка появляется только при использоватии bg.
все что с ним связано закоментировано.
0
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
22.02.2011, 13:13 19
Слушайте, ну так нереально. Приведите код, НЕ СОДЕРЖАЩИЙ закомментированных строк. Я НЕ ЗНАЮ, что именно Вы раскомментировали. Код, который я скопирую, запущу и получу проблему. Иначе мы будем тут разговаривать до посинения.
0
мну довольно <(-__-)l
217 / 206 / 15
Регистрация: 17.01.2010
Сообщений: 2,462
22.02.2011, 13:39  [ТС] 20
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public void init() {
                        image = createImage(this.getSize().width,this.getSize().height);
                bg = image.getGraphics();
                }
                public void paint(Graphics gr) {
                        //Graphics2D g = (Graphics2D)gr;
                        //g.setColor(c1);
                        //g.fill(new Ellipse2D.Double(sx, sy, 2*r, 2*r));
                        //g.setColor(c2);
                        //bg=image.getGraphics();
                        bg.setColor(c1);//<<тут вылетает ошибка. если закоментить далее по списку
                        bg.fillOval(sx.intValue(), sy.intValue(), 2*r, 2*r);//<<2
                        bg.setColor(c2);//<<3
                        //g.setColor(c2);
                        if(sx<=0)
                                if(d>90&d<270)d=(540-d)%360;
                        if(sy<=0)
                                if(d>0&d<180)d=360-d;
                        if(sx>=(this.getSize().width-2*r))
                                if(d<90|d>270)d=(540-d)%360;
                        if(sy>=(this.getSize().height-2*r))
                                if(d>180)d=360-d;
                        if(state==1){
                                sx=sx+r*Math.cos(d*Math.PI/180)*1/6;
                                sy=sy-r*Math.sin(d*Math.PI/180)*1/6;
                                X=sx+r;
                                Y=sy+r;
                        }
                        //g.fill(new Ellipse2D.Double(sx, sy, 2*r, 2*r));
                        bg.fillOval(sx.intValue(), sy.intValue(), 2*r, 2*r);//<<4
                        gr.drawImage(image,0,0,null);
                }
        }
}
вот так не работает.
0
22.02.2011, 13:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.02.2011, 13:39
Помогаю со студенческими работами здесь

Ошибка java.lang.NullPointerException
Подскажите пожалуйста, как исправить Вот код package test; import javax.swing.JButton;...

Непонятный java.lang.NullPointerException
Здравствуйте. Есть диалоговое окно, в нем 3 радиобаттона, которые объявляются в теле класса...

Исключение Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Подскажите, отчего выдается исключение при нажатии на кнопку. Exception in thread...

Ошибка Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Помогите пожалуйста package pr; import java.awt.EventQueue; import javax.swing.JFrame;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru