Graphics2d на JPanelJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Graphics2d на JPanel

Сообщение Anonymous »

Я хочу написать программу на Java, которая будет отображать квадрат в позиции вашей мыши. Для этого я хотел нарисовать сетку в качестве фона, а затем добавить квадраты, но как только я добавляю новый компонент в JFrame, фон исчезает. Это также происходит и наоборот: если я добавлю квадрат, а затем добавлю фон, квадрат исчезнет. Ниже приведен код. Теперь у меня вопрос, как добавить вторую графику, не исчезая при этом первая. Мне также жаль, если мой английский не так уж хорош, это не мой родной язык.

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

import java.awt.BorderLayout;
import java.awt.Image;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.WindowConstants;

//Mainmethod
public class App {
public static void main(String[] args) throws Exception {
System.out.println("Hello World");
MainFrame myFrame = new MainFrame();
myFrame.init();
}
}
//Window
public class MainFrame extends JFrame{
public void init(){
Image Logo; // Image for the window icon
JPanel contentPane;
Background background = new Background();
Sand sand = new Sand();

try {//sets the WidnowIcon
Logo = ImageIO.read(new File("Logo.jpg"));
setIconImage(Logo);
} catch (IOException e) {

e.printStackTrace();
}
//JFrameconfiguratio
setTitle("Sandsim");
setSize(600, 600);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setVisible(true);

//contentPaneconfiguration
contentPane = new JPanel();
contentPane.setLayout(new BorderLayout());
contentPane.setVisible(true);
setContentPane(contentPane);

//adds Background and sand but you can only see the one that was added last
contentPane.add(background);
contentPane.add(sand);
}
}
//draws the Bakground as grid of 10 by 10 squares
class Background extends JComponent {
public void paintComponent(Graphics g) {

int positionX = 0;
int positionY = 0;

Graphics2D g2d = (Graphics2D) g;
g2d.setColor(Color.BLACK);

for (int i = 0; i < getBounds().width / 10; i++) {
g2d.drawLine(positionX, 0, positionX, getBounds().height);
positionX += 10;
}
for (int i = 0; i < getBounds().height / 10; i++) {
g2d.drawLine(0, positionY, getBounds().width, positionY);
positionY += 10;
}
}
}
//draws a Sandcorn as 10 by 10 Rectangle
public class Sand extends JComponent{
public void paintComponent(Graphics g){

Graphics2D g2d =(Graphics2D)g;
g2d.setColor(Color.YELLOW);
g2d.fillRect(10, 10, 10, 10);

}
}
Я пытался заставить его работать уже несколько часов, но не смог найти решения. Я посмотрел Oracle и поискал в Интернете несколько руководств, но они всегда работали без каких-либо специальных настроек или чего-то в этом роде. Буду очень признателен за любую помощь.


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

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

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

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

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

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

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