Adding multiple classes to a Jframe

2019-08-30 09:58发布

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);



         }
}

2条回答
做自己的国王
2楼-- · 2019-08-30 10:37

JFrame uses BorderLayout as a layout manager by default. When adding 2 components and BorderLayout 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:

frame.add(component, BorderLayout.CENTER);
frame.add(component1, BorderLayout.SOUTH);

or use another layout manager.


See:

查看更多
\"骚年 ilove
3楼-- · 2019-08-30 10:48

The default layout of is a BorderLayout, and when you do this:

Concertbackground component = new Concertbackground();
      frame.add(component);
    BandComponent component1 = new BandComponent();
    frame.add(component1);

you're adding component and component1 in the same place.

Check the BorderLayout usage or use another layout to display components properly.

查看更多
登录 后发表回答