GaneshRfromSpace Ответов: 1

Как сделать прокрутку фигур в java AWT ?


Приведенный ниже код помещает Мои 8 фигур в 8 различных положениях.

Shape aShape = new RoundRectangle2D.Double(60,112,310,60,10,10);
Shape bShape = new RoundRectangle2D.Double(60,194,310,60,10,10);
Shape cShape = new RoundRectangle2D.Double(60,276,310,60,10,10);
Shape dShape = new RoundRectangle2D.Double(60,358,310,60,10,10);	
Shape eShape = new RoundRectangle2D.Double(60,440,310,60,10,10);
Shape fShape = new RoundRectangle2D.Double(60,522,310,60,10,10);
Shape gShape = new RoundRectangle2D.Double(60,604,310,60,10,10);
Shape hShape = new RoundRectangle2D.Double(60,686,310,60,10,10);


Я жестко закодировал положение шрифта также в форме.

//		aShape border color
		graphics2D.setStroke(new BasicStroke(borderThickness));
		graphics2D.setColor(Color.WHITE);
		
//		Drawing a Rounded Rectangle for A
		graphics2D.draw(aShape);
		graphics2D.setStroke(oldStroke);
		
//		Setting the Background Color
		graphics2D.setColor(color); 
		graphics2D.fill(aShape);
		
//		Setting the font inside the shape
		Font aFont = new Font("Serif", Font.PLAIN,25);
		graphics2D.setFont(aFont);
		graphics2D.setColor(Color.WHITE);
		graphics2D.drawString(ProjectConstants.A_KEY, 80,148);



Но теперь я хочу показать только 4 за раз и ввести прокрутку. Поскольку позиции X и Y жестко закодированы, я не знаю, как я буду прокручивать свои фигуры ?

Может ли кто-нибудь поделиться некоторыми соображениями о том, как динамически загружать мои графические фигуры и размещать их в правильном положении при прокрутке ?

Что я уже пробовал:

Я попытался поместить 4 фигуры в одну панель и еще 4 фигуры в другую панель, а также попытался ввести прокрутку, но это заменило бы 4 фигуры в одном свитке.

1 Ответов

Рейтинг:
1

Richard MacCutchan

Это тот же самый вопрос, который вы задали в Могу ли я добавить прослушиватель ключей к графическим фигурам в java AWT ?[^И я уже объяснял, что для прокрутки фигур вам нужно рассчитать новые позиции, основываясь на том, сколько пикселей нужно переместить за одно нажатие клавиши. Затем вы перерисовываете фигуру в новом положении.