У меня есть некоторые проблемы, используя прямоугольник
paintComponent всегда обновлять прямоугольник
вот мой код:
import java.awt.*;
import javax.swing.*;
import java.util.*;
public class square
{
JFrame fr=new JFrame("square");
Random acak=new Random();
JScrollPane sc;
int tinggi,lebar;
JTabbedPane tab=new JTabbedPane();
square()
{
fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fr.setLocation(0,0);
fr.setExtendedState(JFrame.MAXIMIZED_BOTH);
fr.setLayout(new GridLayout(1,1));
tab.addTab("Panel1",new panel1());
tab.addTab("Panel2",new panel2());
fr.add(tab);
fr.show();
}
public static void main(String[] args)
{
new square();
}
}
class panel1 extends JPanel
{
panel1()
{
}
public void paintComponent(Graphics g3)
{
int x=(int)(Math.random()*500);
int y=(int)(Math.random()*500);
g3.setColor(Color.red);
g3.fillRect(x,y,100,100);
}
}
class panel2 extends JPanel
{
panel2()
{
}
public void paintComponent(Graphics g2)
{
int x=(int)(Math.random()*500);
int y=(int)(Math.random()*500);
g2.setColor(Color.blue);
g2.fillRect(x,y,100,100);
}
}
я, используя координаты и размер случайной
если я переключаюсь на вкладку, координаты и размер прямоугольника всегда изменяется.
как сделать и координировать только в первый раз ???
Не создавать/изменять состояние краски (х, у) в 'метод paintComponent'. Задайте его как в конструкторе, а просто _use_ в методе 'paintComponent'. –
можете ли вы сделать какой-нибудь пример ??? – newbie
Просто введите поля 'int x, y' в классе панели, а затем инициализируйте их в конструкторе' public panel() {x = .., y = ..} ', затем используйте x и y в методе рисования , Если вы не понимаете поля и конструкторы, я настоятельно рекомендую перейти на основы Java, прежде чем работать с графическими интерфейсами. –