Hello we need to add multiple classes to our Jframe:
import javax.swing.JFrame;
public class Concert
{
public static void main(String[] args)
{
JFrame frame = new JFrame();
frame.setSize(1000, 800);
frame.setTitle("Concert!");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Concertbackground component = new Concertbackground();
frame.add(component);
BandComponent component1 = new BandComponent();
frame.add(component1);
frame.setVisible(true);
}
}
Here our some of our classes and we are confused as how to make all of our classes display at the same time without over writing the previous graphic being displayed.
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Line2D;
import javax.swing.JComponent;
import java.awt.GradientPaint;
/*
component that draws the concert background
*/
public class Concertbackground extends JComponent
{
public void paintComponent(Graphics g)
{
super.paintComponent(g);
// Recover Graphics2D
Graphics2D g2 = (Graphics2D) g;
//Background Top
g2.setColor(Color.BLUE);
Rectangle backgroundTop = new Rectangle (0, 0, getWidth(), getHeight() / 4);
g2.fill(backgroundTop);
// Background bottom
g2.setColor(Color.GREEN);
Rectangle backgroundBottom = new Rectangle (0, getHeight() / 2, getWidth(), getHeight() / 2);
g2.fill(backgroundBottom);
// Speaker base
g2.setColor(Color.BLACK);
Rectangle base = new Rectangle (0, 0, 50, 100);
g2.fill(base);
// Speakers circles gray top
g2.setColor(Color.DARK_GRAY);
Ellipse2D.Double speakerTop = new Ellipse2D.Double(10, 10, 30, 30);
g2.fill(speakerTop);
//speakers circles black top
g2.setColor(Color.BLACK);
Ellipse2D.Double speakerTop1 = new Ellipse2D.Double(15, 15, 20, 20);
g2.fill(speakerTop1);
// Speakers circles gray bottom
g2.setColor(Color.DARK_GRAY);
Ellipse2D.Double speakerBottom = new Ellipse2D.Double(10, 50, 30, 30);
g2.fill(speakerBottom);
//speakers circles black bottom
g2.setColor(Color.BLACK);
Ellipse2D.Double speakerBottom1 = new Ellipse2D.Double(15, 55, 20, 20);
g2.fill(speakerBottom1);
}
}
public class BandComponent extends JComponent
{
public void paintComponent(Graphics g)
{
// Recover Graphics2D
Graphics2D g2 = (Graphics2D) g;
int xScale = 250;
int yScale = 100;
int x = 343;
int y = 343;
//singer
Polygon sing = new Polygon();
sing.addPoint(667 ,208 + xScale);
sing.addPoint(676,213 + xScale);
sing.addPoint(678,217 + xScale);
sing.addPoint(682,221 + xScale);
sing.addPoint(681,224 + xScale);
sing.addPoint(680,231 + xScale);
sing.addPoint(676,242 + xScale);
sing.addPoint(672,244 + xScale);
sing.addPoint(672,250 + xScale);
sing.addPoint(682,248 + xScale);
sing.addPoint(713,244 + xScale);
sing.addPoint(734,247 + xScale);
sing.addPoint(750,247 + xScale);
sing.addPoint(794,232 + xScale);
sing.addPoint(800,231 + xScale);
sing.addPoint(801,223 + xScale);
sing.addPoint(807,219 + xScale);
sing.addPoint(806,221 + xScale);
sing.addPoint(806,229 + xScale);
sing.addPoint(818,222 + xScale);
sing.addPoint(820,223 + xScale);
sing.addPoint(825,227 + xScale);
sing.addPoint(825,240 + xScale);
sing.addPoint(817,243 + xScale);
sing.addPoint(807,245 + xScale);
sing.addPoint(803,247 + xScale);
sing.addPoint(801,252 + xScale);
sing.addPoint(781,257 + xScale);
sing.addPoint(762,264 + xScale);
sing.addPoint(734,271 + xScale);
sing.addPoint(701,286 + xScale);
sing.addPoint(691,296 + xScale);
sing.addPoint(693,311 + xScale);
sing.addPoint(690,317 + xScale);
sing.addPoint(690,335 + xScale);
sing.addPoint(691,339 + xScale);
sing.addPoint(689,343 + xScale);
sing.addPoint(712,382 + xScale);
sing.addPoint(725,400 + xScale);
sing.addPoint(731,418 + xScale);
sing.addPoint(731,428 + xScale);
sing.addPoint(738,454 + xScale);
sing.addPoint(741,460 + xScale);
sing.addPoint(746,468 + xScale);
sing.addPoint(766,468 + xScale);
sing.addPoint(771,481 + xScale);//
sing.addPoint(723,482 + xScale);
sing.addPoint(720,462 + xScale);
sing.addPoint(718,454 + xScale);
sing.addPoint(709,436 + xScale);
sing.addPoint(703,436 + xScale);
sing.addPoint(699,417 + xScale);
sing.addPoint(686,396 + xScale);
sing.addPoint(678,395 + xScale);
sing.addPoint(676,437 + xScale);
sing.addPoint(673,439 + xScale);
sing.addPoint(638,435 + xScale);
sing.addPoint(640,398 + xScale);
sing.addPoint(634,410 + xScale);
sing.addPoint(625,416 + xScale);
sing.addPoint(622,436 + xScale);
sing.addPoint(622,443 + xScale);
sing.addPoint(615,447 + xScale);
sing.addPoint(609,456 + xScale);
sing.addPoint(606,481 + xScale);//
sing.addPoint(557,481 + xScale);
sing.addPoint(560,467 + xScale);
sing.addPoint(579,467 + xScale);
sing.addPoint(587,464 + xScale);
sing.addPoint(593,452 + xScale);
sing.addPoint(594,441 + xScale);
sing.addPoint(592,434 + xScale);
sing.addPoint(600,416 + xScale);
sing.addPoint(608,405 + xScale);
sing.addPoint(609,394 + xScale);
sing.addPoint(617,376 + xScale);
sing.addPoint(619,363 + xScale);
sing.addPoint(632,334 + xScale);
sing.addPoint(637,324 + xScale);
sing.addPoint(635,314 + xScale);
sing.addPoint(639,296 + xScale);
sing.addPoint(627,285 + xScale);
sing.addPoint(600,279 + xScale);
sing.addPoint(582,278 + xScale);
sing.addPoint(575,275 + xScale);
sing.addPoint(546,256 + xScale);
sing.addPoint(536,252 + xScale);
sing.addPoint(533,350 + xScale);
sing.addPoint(534,361 + xScale);
sing.addPoint(532,367 + xScale);
sing.addPoint(529,369 + xScale);
sing.addPoint(524,363 + xScale);
sing.addPoint(525,355 + xScale);
sing.addPoint(531,254 + xScale);
sing.addPoint(527,249 + xScale);
sing.addPoint(527,242 + xScale);
sing.addPoint(529,237 + xScale);
sing.addPoint(532,237 + xScale);
sing.addPoint(536,178 + xScale);
sing.addPoint(534,129 + xScale);
sing.addPoint(535,123 + xScale);
sing.addPoint(541,120 + xScale);
sing.addPoint(545,123 + xScale);
sing.addPoint(547,131 + xScale);
sing.addPoint(545,173 + xScale);
sing.addPoint(538,233 + xScale);
sing.addPoint(549,239 + xScale);
sing.addPoint(558,241 + xScale);
sing.addPoint(585,257 + xScale);
sing.addPoint(599,257 + xScale);
sing.addPoint(627,254 + xScale);
sing.addPoint(647,251 + xScale);
sing.addPoint(653,248 + xScale);
sing.addPoint(652,235 + xScale);
sing.addPoint(648,226 + xScale);
sing.addPoint(652,218 + xScale);
sing.addPoint(661,212 + xScale);
g2.setColor(Color.black);
g2.fill(sing);
g2.draw(sing);
//guitar
Polygon guitar = new Polygon();
guitar.addPoint(148,28);
guitar.addPoint(158,32);
guitar.addPoint(164,38);
guitar.addPoint(168,46);
guitar.addPoint(169,52);
guitar.addPoint(167,60);
guitar.addPoint(164,65);
guitar.addPoint(165,70);
guitar.addPoint(161,76);
guitar.addPoint(158,92);
guitar.addPoint(162,97);
guitar.addPoint(161,102);
guitar.addPoint(158,106);
guitar.addPoint(155,108);
guitar.addPoint(151,127);
guitar.addPoint(152,133);
guitar.addPoint(155,137);
guitar.addPoint(151,146);
guitar.addPoint(153,147);
guitar.addPoint(160,142);
guitar.addPoint(162,133);
guitar.addPoint(162,123);
guitar.addPoint(161,113);
guitar.addPoint(162,110);
guitar.addPoint(164,117);
guitar.addPoint(169,131);
guitar.addPoint(171,144);
guitar.addPoint(170,159);
guitar.addPoint(166,167);
guitar.addPoint(166,171);
guitar.addPoint(174,174);
guitar.addPoint(183,184);
guitar.addPoint(191,195);
guitar.addPoint(196,198);
guitar.addPoint(198,200);
guitar.addPoint(199,210);
guitar.addPoint(211,225);
guitar.addPoint(212,233);
guitar.addPoint(220,248);
guitar.addPoint(233,260);
guitar.addPoint(245,266);
guitar.addPoint(248,268);
guitar.addPoint(249,277);
guitar.addPoint(205,275);
guitar.addPoint(204,262);
guitar.addPoint(187,238);
guitar.addPoint(178,224);
guitar.addPoint(177,216);
guitar.addPoint(156,201);
guitar.addPoint(146,197);
guitar.addPoint(134,211);
guitar.addPoint(128,229);
guitar.addPoint(125,244);//
guitar.addPoint(121,246);
guitar.addPoint(107,248);
guitar.addPoint(100,252);
guitar.addPoint(97,258);
guitar.addPoint(96,253);
guitar.addPoint(89,258);
guitar.addPoint(65,267);
guitar.addPoint(63,274);
guitar.addPoint(64,283);
guitar.addPoint(41,282);
guitar.addPoint(44,270);
guitar.addPoint(47,264);
guitar.addPoint(51,255);
guitar.addPoint(73,238);
guitar.addPoint(79,228);
guitar.addPoint(97,222);
guitar.addPoint(101,204);
guitar.addPoint(102,181);
guitar.addPoint(100,170);
guitar.addPoint(95,161);
guitar.addPoint(97,154);
guitar.addPoint(91,152);
guitar.addPoint(77,131);
guitar.addPoint(65,123);
guitar.addPoint(61,105);
guitar.addPoint(64,94);
guitar.addPoint(72,91);
guitar.addPoint(78,82);
guitar.addPoint(78,76);
guitar.addPoint(70,73);
guitar.addPoint(70,67);
guitar.addPoint(93,51);
guitar.addPoint(101,48);
guitar.addPoint(111,52);
guitar.addPoint(118,59);
guitar.addPoint(119,70);
guitar.addPoint(117,78);
guitar.addPoint(113,79);
guitar.addPoint(112,86);
guitar.addPoint(111,88);
guitar.addPoint(109,89);
guitar.addPoint(109,92);
guitar.addPoint(122,99);//
guitar.addPoint(124,99);
guitar.addPoint(133,96);
guitar.addPoint(145,93);
//guitar.addPoint(138,124);
guitar.addPoint(150,69);
guitar.addPoint(150,62);
guitar.addPoint(155,58);
guitar.addPoint(154,53);
guitar.addPoint(149,50);
guitar.addPoint(154,46);
guitar.addPoint(153,38);
guitar.addPoint(147,28);
g2.setColor(Color.black);
g2.fill(guitar);
g2.draw(guitar);
Polygon guitar2 = new Polygon ();
guitar2.addPoint(141,108);
guitar2.addPoint(139,126);
guitar2.addPoint(135,122);
guitar2.addPoint(128,122);
guitar2.addPoint(129,116);
guitar2.addPoint(143,108);
g2.setColor(Color.white);
g2.fill(guitar2);
g2.draw(guitar2);
//bass guitar
Polygon bassgt = new Polygon ();
bassgt.addPoint(871,21);
bassgt.addPoint(879,24);
bassgt.addPoint(885,32);
bassgt.addPoint(886,42);
bassgt.addPoint(895,47);
bassgt.addPoint(904,56);
bassgt.addPoint(907,69);
bassgt.addPoint(909,83);
bassgt.addPoint(910,91);
bassgt.addPoint(941,81);
bassgt.addPoint(946,75);
bassgt.addPoint(945,67);
bassgt.addPoint(950,67);
bassgt.addPoint(955,75);
bassgt.addPoint(960,68);
bassgt.addPoint(963,74);
bassgt.addPoint(967,72);
bassgt.addPoint(971,66);
bassgt.addPoint(973,70);
bassgt.addPoint(981,67);
bassgt.addPoint(984,71);
bassgt.addPoint(982,76);
bassgt.addPoint(987,80);
bassgt.addPoint(986,82);
bassgt.addPoint(980,83);
bassgt.addPoint(979,90);
bassgt.addPoint(974,85);
bassgt.addPoint(970,86);
bassgt.addPoint(973,91);
bassgt.addPoint(965,86);
bassgt.addPoint(960,90);
bassgt.addPoint(961,100);
bassgt.addPoint(955,92);
bassgt.addPoint(944,91);
bassgt.addPoint(907,103);
bassgt.addPoint(906,109);
bassgt.addPoint(893,114);
bassgt.addPoint(895,123);
bassgt.addPoint(900,131);
bassgt.addPoint(904,134);
bassgt.addPoint(908,145);
bassgt.addPoint(911,159);
bassgt.addPoint(918,171);
bassgt.addPoint(919,190);
bassgt.addPoint(923,198);
bassgt.addPoint(919,201);
bassgt.addPoint(919,210);
bassgt.addPoint(927,220);
bassgt.addPoint(942,226);
bassgt.addPoint(944,234);
bassgt.addPoint(909,230);
bassgt.addPoint(905,214);
bassgt.addPoint(899,204);
bassgt.addPoint(893,203);
bassgt.addPoint(889,171);
bassgt.addPoint(877,151);
bassgt.addPoint(861,152);
bassgt.addPoint(852,169);
bassgt.addPoint(849,203);
bassgt.addPoint(841,210);
bassgt.addPoint(840,228);
bassgt.addPoint(828,233);
bassgt.addPoint(806,235);
bassgt.addPoint(805,228);
bassgt.addPoint(822,219);
bassgt.addPoint(824,204);
bassgt.addPoint(817,201);
bassgt.addPoint(822,196);
bassgt.addPoint(822,184);
bassgt.addPoint(828,162);
bassgt.addPoint(829,152);
bassgt.addPoint(820,149);
bassgt.addPoint(811,144);
bassgt.addPoint(806,134);
bassgt.addPoint(805,117);
bassgt.addPoint(820,107);
bassgt.addPoint(819,89);
bassgt.addPoint(811,83);
bassgt.addPoint(811,77);
bassgt.addPoint(824,66);
bassgt.addPoint(825,61);
bassgt.addPoint(842,53);
bassgt.addPoint(852,43);
bassgt.addPoint(853,29);
bassgt.addPoint(870,20);
g2.setColor(Color.black);
g2.fill(bassgt);
g2.draw(bassgt);
Polygon bassgt2 = new Polygon();
bassgt2.addPoint(845,78);
bassgt2.addPoint(845,98);
bassgt2.addPoint(843,98);
bassgt2.addPoint(842,105);
bassgt2.addPoint(839,109);
bassgt2.addPoint(834,103);
bassgt2.addPoint(832,85);
bassgt2.addPoint(845,78);
g2.setColor(Color.white);
g2.fill(bassgt2);
g2.draw(bassgt2);
Polygon drums = new Polygon ();
drums.addPoint(713,104);
drums.addPoint(706,121);
drums.addPoint(721,377);
drums.addPoint(248,380);
drums.addPoint(253,228);
drums.addPoint(250,206);
drums.addPoint(237,178);
drums.addPoint(206,166);
drums.addPoint(201,154);
drums.addPoint(198,152);
drums.addPoint(208,148);
drums.addPoint(236,150);
drums.addPoint(247,130);
drums.addPoint(227,119);
drums.addPoint(219,105);
drums.addPoint(222,96);
drums.addPoint(233,88);
drums.addPoint(251,84);
drums.addPoint(272,83);
drums.addPoint(300,91);
drums.addPoint(285,72);
drums.addPoint(294,57);
drums.addPoint(319,46);
drums.addPoint(372,45);
drums.addPoint(406,50);
drums.addPoint(428,65);
drums.addPoint(433,74);
drums.addPoint(450,58);
drums.addPoint(478,48);
drums.addPoint(514,48);
drums.addPoint(544,51);
drums.addPoint(566,52);
drums.addPoint(577,67);
drums.addPoint(575,79);
drums.addPoint(561,95);
drums.addPoint(545,98);
drums.addPoint(525,105);
drums.addPoint(524,147);
drums.addPoint(524,183);
drums.addPoint(645,175);
drums.addPoint(662,143);
drums.addPoint(617,152);
drums.addPoint(608,148);
drums.addPoint(614,139);
drums.addPoint(633,128);
drums.addPoint(661,116);
drums.addPoint(659,107);
drums.addPoint(625,114);
drums.addPoint(592,113);
drums.addPoint(571,111);
drums.addPoint(565,102);
drums.addPoint(576,86);
drums.addPoint(616,70);
drums.addPoint(647,66);
drums.addPoint(679,67);
drums.addPoint(695,72);
drums.addPoint(699,90);
drums.addPoint(678,100);
drums.addPoint(667,103);
drums.addPoint(672,113);
drums.addPoint(689,105);
drums.addPoint(709,106);
g2.setColor(Color.black);
g2.fill(drums);
g2.draw(drums);
}
}
JFrame
usesBorderLayout
as a layout manager by default. When adding 2 components andBorderLayout
is used (without specifying other options) then the second component will replace the old one. You need to specify the region where you would add the components to, for example:or use another layout manager.
See:
The default layout of is a BorderLayout, and when you do this:
you're adding component and component1 in the same place.
Check the BorderLayout usage or use another layout to display components properly.