向Jframe添加多个类 [英] Adding multiple classes to a Jframe
问题描述
您好,我们需要向我们的Jframe中添加多个类:
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
默认情况下使用BorderLayout
作为布局管理器.当添加2个组件并使用BorderLayout
(不指定其他选项)时,第二个组件将替换旧的组件.您需要指定要将组件添加到的区域,例如:
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.
请参阅:
- How to Use BorderLayout.
- Using Layout Managers
这篇关于向Jframe添加多个类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!