(Ce programme ne va vraiment finir par faire tout ce que je suis juste en utilisant cela pour apprendre/expérience)Comment peindre en utilisant 2 classes différentes
Quand je lance mon code, je voulais une classe à peindre un cercle noir et une autre classe pour peindre un cercle bleu qui l'intersecte. Mais la façon dont je l'ai maintenant quand une instance de Class2 est ajouté, il écrase Class1 dans le cadre.
Je peux voir ce qui ne va pas Je ne suis pas sûr de savoir comment le réparer.
Est-il possible de faire ceci ou êtes-vous censé tout faire sous la même peinture()?
public class Practice{
public static GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
public static final int dWidth = gd.getDisplayMode().getWidth();
public static final int dHeight = gd.getDisplayMode().getHeight();
public static void main(String[] args){
heyo();
}
public static void heyo(){
JFrame window = new JFrame();
Class1 obj1 = new Class1();
Class2 obj2 = new Class2();
window.setSize(dWidth, dHeight);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setResizable(false);
window.add(obj1);
window.add(obj2);
window.setVisible(true);
}
}
public class Class1 extends JComponent{
public void paint(Graphics b){
Graphics2D brush = (Graphics2D)b;
brush.setColor(Color.black);
brush.drawOval(100, 100, 50, 50);
}
}
public class Class2 extends JComponent{
public void paint(Graphics c){
Graphics2D brush = (Graphics2D)c;
brush.setColor(Color.blue);
brush.drawOval(200, 200, 50, 50);
}
}
N'utilisez pas la méthode 'paint()'. utilisez à la place 'paintComponent()' – Braj
N'oubliez pas d'appeler 'super.paintComponent();' inside overridden 'paintComponent()' méthode – Braj