Я пытаюсь нарисовать один овал над другим овалом. Здесь я использую оператор select для рисования в компоненте компонента краски.Окрашивание объектов друг на друга
import java.awt.*;
public class test extends JPanel{
public static final int OVAL = 1;
public static final int SOLID = 2;
private int type = LINE;
public test(int type){
this.type = type;
}
public void piantComponent(Graphics g){
super.paintComponent(g);
switch(type)
{
case OVAL:
g.setColor(Color.YELLOW);
g.drawOval(0,0,150,150);
break;
case SOLID:
g.setColor(Color.BLUE);
g.fillOval(0,0,50,50);
break;
}
}
}
Теперь в моем основном методе я хочу, чтобы отобразить твердый синий овал (SOLID) внутри желтого овала (овал).
import...;
public class Main{
public static void main (String [] args){
JFrame window = new JFrame();
window.add(new test(test.OVAL));
window.add(new test(test.SOLID));
window.setSize(300,300);
window.setVisible(true);
}
}
Это не делает то, что я хочу, чтобы он вообще делал. Это отображает только овальное, а не овальное и твердое. Я думаю, что я перегружаю окно, чтобы отображать только овал. Я попытался отобразить с менеджером компоновки (gridlayout), но это не отображает две картины друг над другом, она отображает две картины рядом друг с другом.
Как исправить это, не теряя оператора switch.
Используйте правильные имена классов Java. «test» не является стандартным именем. Имена классов начинаются с символа верхнего регистра. – camickr