Java программа зависает.

Модератор: Модераторы разделов

susageP
Сообщения: 7

Java программа зависает.

Сообщение susageP »

Написал на Jave в Eclipse вот такой код..

Код: Выделить всё

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;

import javax.swing.JFrame;


public class Main extends JFrame
{
    public static void main(String[] args)
    {
        new Main();
    }

    Main()
    {
        setSize(300, 300);
        setVisible(true);
    }

    public void paint(Graphics _g_)
    {
        Graphics2D g = (Graphics2D)_g_;

        for(int i=0;i<256;i++)
        {
            g.setColor(new Color(0,i,0,0));
            g.drawLine(i,  0, i, 50);
            g.drawLine(i, 50, i,100);
            g.drawLine(i,100, i,150);
        }
    }
}

после запуска появляется окно(хотя на окне должен быть градиент зеленого) и мерцания всего экрана после чего
не работает клавиатура, окна не отвечают(нельзя перетащить выбрать) тока курсор мышки бегает и все..
пробовал Ctrl+alt+f1 не работает..
помогает тока ресет.
У кого нибудь такая проблема встречалась?
Стоит Mandriva 2010
Спасибо сказали:
kamre
Сообщения: 243
ОС: Win7/Ubuntu 11.10

Re: Java программа зависает.

Сообщение kamre »

Код: Выделить всё

import java.awt.*;
import javax.swing.*;

@SuppressWarnings("serial")
public class LinearGradientExample extends JComponent {
    @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2d = (Graphics2D) g;
        int w = getWidth();
        int h = getHeight();
        float[] fractions = { 0, 1 };
        Color[] colors = { Color.black, Color.green };
        Paint paint = new LinearGradientPaint(0, 0, w, 0, fractions, colors);
        g2d.setPaint(paint);
        int b = 15;
        g2d.fillRect(b, b, w - 2 * b, h - 2 * b);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                JFrame frame = new JFrame("Linear Gradient");
                frame.getContentPane().add(new LinearGradientExample());
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setSize(300, 300);
                frame.setVisible(true);
            }
        });
    }
}
Спасибо сказали:
susageP
Сообщения: 7

Re: Java программа зависает.

Сообщение susageP »

Похоже ошибка в ЗД эффектах рабочего стола Compiz Fusion при выполнения кода висла графическая оболочка..
После отключение 3Д эффектов стало работать нормально просто показывать пустое окно.

Код: Выделить всё

если
g.setColor(new Color(0,i,0,0));
заменить на
g.setColor(new Color(0,i,0,255));

будет черно зеленый градиент.
Спасибо сказали: