Java Graphics2D fillRect создает квадраты неправильного размера с узоромJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Java Graphics2D fillRect создает квадраты неправильного размера с узором

Сообщение Anonymous »

У меня возникла проблема с пользовательским изображением, отображаемым на JPanel с помощью Graphics2D. Если я попытаюсь нарисовать пиксель 1x1 для каждой ширины и длины панели x/y с помощью fillRect, это создаст в шаблоне кучу прямоугольников разного размера: 1x1, 1x2 и 2x2. Я пробовал играть с подсказками рендеринга Graphics2D, но не смог понять, что вызывает это.
Вот увеличенное изображение того, что происходит, размер прямоугольника, кажется, создает также шаблон.
Изображение

Вот минимально жизнеспособный пример, который должен печатать прямоугольники 1x1.

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

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

class Scratch {

public static final int WIDTH = 400;
public static final int HEIGHT = 400;

public static void main(String[] args) {
BufferedImage img = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_4BYTE_ABGR);
Graphics2D g2d = img.createGraphics();

JPanel panel = new JPanel() {
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D panel2d = (Graphics2D) g;

// Black bg
g2d.setColor(Color.BLACK);
g2d.fillRect(0, 0, getWidth(), getHeight());

int c = 0;
for (int x = 0; x < getWidth(); x++) {
for (int y = 0; y < getHeight(); y++) {
g2d.setColor(new Color((c += 13) % 255, (c += 17) % 255, (c += 23) % 255));
g2d.fillRect(x, y, 1, 1);
}
}

panel2d.drawImage(img, null, 0, 0);
}
};

JFrame frame = new JFrame("Scratch");
frame.setLayout(new BorderLayout());
frame.add(panel, BorderLayout.CENTER);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setVisible(true);

frame.getContentPane().setPreferredSize(new Dimension(WIDTH, HEIGHT));
frame.pack();
}

}
Или мне следует использовать для этого что-то другое, кроме Graphics2D?


Подробнее здесь: https://stackoverflow.com/questions/788 ... -a-pattern
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Java Graphics2D fillRect создает квадраты неправильного размера с узором
    Anonymous » » в форуме JAVA
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Невозможно вызвать "java.net.url.toexternalform ()", потому что «местоположение» - это null java netbeans graphics2d
    Anonymous » » в форуме JAVA
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • (Игровой дизайн) Сглаживание в Java Graphics2d
    Anonymous » » в форуме JAVA
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Рисование прозрачных изображений в Java Graphics2d
    Anonymous » » в форуме JAVA
    0 Ответы
    1 Просмотры
    Последнее сообщение Anonymous
  • Graphics2d на JPanel
    Anonymous » » в форуме JAVA
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»