import java.awt.*;
import java.awt.geom.Line2D;
import java.awt.geom.RoundRectangle2D;
import javax.swing.*;
public class Transportation extends JFrame {
public Transportation(){
super();
initalize();
}
private JPanel jp;
private JScrollPane js;
public void initalize()
{
this.setTitle("中国铁路简图");
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
JPanel jp1 = new JPanel();
jp1.setBackground(Color.BLACK);
jp1.setLayout(new BorderLayout());
this.jp = new JPanel();
jp.setBackground(Color.BLACK);
this.js = new JScrollPane(jp);
jp1.add(js);
jp1.setPreferredSize(new Dimension(800, 700));
this.setContentPane(jp1);
this.pack();
this.setVisible(true);
this.scroll();
jp1.add(new City());
}
public void scroll()
{
jp.setPreferredSize(new Dimension(900,800));
jp.revalidate();
this.pack();
this.setVisible(true);
}
public static void main(String[] args)
{
new Transportation().setVisible(true);
}
class City extends JPanel {
public void paint(final Graphics g){
int i=0;
super.paint(g);
final Graphics2D g1=(Graphics2D)g;
Shape[] city=new Shape[90];
g1.setColor(Color.RED);
int[]x1={426,434,436,438,446,440,442,436,430,432};//北京436.211
int[]y1={219,218,213,218,219,221,227,223,227,221};
city[0]=new Polygon(x1,y1,10);
int[]x2={529,537,539,541,549,543,545,539,533,535};//上海539.366
int[]y2={364,363,358,363,364,366,372,368,372,366};
city[1]=new Polygon(x2,y2,10);
int[]x3={313,321,323,325,333,327,329,323,317,319};//西安323.315
int[]y3={313,312,307,312,313,315,321,317,321,315};
city[2]=new Polygon(x3,y3,10);
int[]x4={231,239,241,243,251,245,247,241,235,237};//成都241.371
int[]y4={369,368,363,368,369,371,377,373,377,371};
city[3]=new Polygon(x4,y4,10);
int[]x5={397,405,407,409,417,411,413,407,401,403};//武汉407.399
int[]y5={397,396,391,396,397,399,405,401,405,399};
city[4]=new Polygon(x5,y5,10);
int[]x6={387,395,397,399,407,401,403,397,391,393};//广州397.528
int[]y6={525,524,519,524,525,527,533,529,533,527};
city[5]=new Polygon(x6,y6,10);
for(i=0;i<6;i++){//遍历数组,输出对象
g1.fill(city[i]);
}
g1.setColor(Color.MAGENTA);
int[] x7={596,590,602};//哈尔滨596,85
int[] y7={79,88,88};
city[6]=new Polygon(x7,y7,3);
int[] x8={584,578,590};//长春584,125
int[] y8={119,128,128};
city[7]=new Polygon(x8,y8,3);
int[] x9={566,560,572};//沈阳566,169
int[] y9={163,172,172};
city[8]=new Polygon(x9,y9,3);
int[] x10={549,543,555};//大连549,218
int[] y10={212,221,221};
city[9]=new Polygon(x10,y10,3);
int[] x11={464,458,470};//天津464,232
int[] y11={226,235,235};
city[10]=new Polygon(x11,y11,3);
int[] x12={419,413,425};//石家庄419,253
int[] y12={247,256,256};
city[11]=new Polygon(x12,y12,3);
int[] x13={381,375,387};//太原381,256
int[] y13={250,259,259};
city[12]=new Polygon(x13,y13,3);
int[] x14={481,475,487};//济南481,267
int[] y14={261,270,270};
city[13]=new Polygon(x14,y14,3);
int[] x15={539,533,545};//青岛539,278
int[] y15={272,281,281};
city[14]=new Polygon(x15,y15,3);
int[] x16={226,220,232};//兰州226,286
int[] y16={280,289,289};
city[15]=new Polygon(x16,y16,3);
int[] x17={409,403,415};//郑州409,316
int[] y17={310,319,319};
city[16]=new Polygon(x17,y17,3);
int[] x18={468,462,474};//徐州468,317
int[] y18={311,320,320};
city[17]=new Polygon(x18,y18,3);
int[] x19={492,486,498};//南京492,350
int[] y19={344,353,353};
city[18]=new Polygon(x19,y19,3);
int[] x20={283,277,289};//重庆283,403
int[] y20={397,406,406};
city[19]=new Polygon(x20,y20,3);
int[] x21={529,523,535};//杭州529,383
int[] y21={378,387,387};
city[20]=new Polygon(x21,y21,3);
int[] x22={448,442,454};//南昌448,416
int[] y22={410,419,419};
city[21]=new Polygon(x22,y22,3);
int[] x23={391,385,397};//长沙391,429
int[] y23={423,431,431};
city[22]=new Polygon(x23,y23,3);
int[] x24={233,227,239};//昆明233,481
int[] y24={475,484,484};
city[23]=new Polygon(x24,y24,3);
int[] x25={392,386,398};//衡阳392,465
int[] y25={459,468,468};
city[24]=new Polygon(x25,y25,3);
int[] x26={328,322,334};//南宁328,532
int[] y26={526,535,533};
city[25]=new Polygon(x26,y26,3);
int[] x27={418,412,424};//深圳418,541
int[] y27={533,542,542};
city[26]=new Polygon(x27,y27,3);
int[] x28={380,374,386};//澳门380,547
int[] y28={541,550,550};
city[27]=new Polygon(x28,y28,3);
int[] x29={547,541,553};//温州547,433
int[] y29={427,436,436};
city[28]=new Polygon(x29,y29,3);
for(i=6;i<29;i++){
g1.fill(city[i]);
}
//city[29]=new Rectangle2D.Double(110, 5, 100, 100,);为什么不中?
g1.setColor(Color.BLUE);
city[29]=new Rectangle.Double(584,110, 6, 6);//大庆+3+3
city[30]=new Rectangle.Double(584,97, 6, 6);//大安
city[31]=new Rectangle.Double(572,141, 6, 6);//四平
city[32]=new Rectangle.Double(563,149, 6, 6);//铁岭
city[33]=new Rectangle.Double(517,180, 6, 6);//锦州
city[34]=new Rectangle.Double(490,216, 6, 6);//秦皇岛
city[35]=new Rectangle.Double(487,228, 6, 6);//唐山
city[36]=new Rectangle.Double(459,213, 6, 6);//承德
city[37]=new Rectangle.Double(558,180, 6, 6);//鞍山
city[38]=new Rectangle.Double(553,192, 6, 6);//熊岳城
city[39]=new Rectangle.Double(553,200, 6, 6);//瓦房店
city[40]=new Rectangle.Double(546,206, 6, 6);//旅顺
city[41]=new Rectangle.Double(283,229, 6, 6);//银川
city[42]=new Rectangle.Double(246,259, 6, 6);//中卫
city[43]=new Rectangle.Double(301,253, 6, 6);//定边
city[44]=new Rectangle.Double(397,253, 6, 6);//榆次
city[45]=new Rectangle.Double(461,255, 6, 6);//德州
city[46]=new Rectangle.Double(435,255, 6, 6);//衡水
city[47]=new Rectangle.Double(495,266, 6, 6);//淄博
city[48]=new Rectangle.Double(523,266, 6, 6);//潍坊
city[49]=new Rectangle.Double(416,269, 6, 6);//邯郸
city[50]=new Rectangle.Double(416,282, 6, 6);//安阳
city[51]=new Rectangle.Double(416,298, 6, 6);//新乡
city[52]=new Rectangle.Double(465,293, 6, 6);//兖州
city[53]=new Rectangle.Double(190,263, 6, 6);//西宁
city[54]=new Rectangle.Double(293,312, 6, 6);//宝鸡
city[55]=new Rectangle.Double(353,312, 6, 6);//华山
city[56]=new Rectangle.Double(383,312, 6, 6);//洛阳
city[57]=new Rectangle.Double(423,312, 6, 6);//开封
city[58]=new Rectangle.Double(443,312, 6, 6);//商丘
city[59]=new Rectangle.Double(405,343, 6, 6);//漯河
city[60]=new Rectangle.Double(405,367, 6, 6);//信阳
city[61]=new Rectangle.Double(474,338, 6, 6);//蚌橰
city[62]=new Rectangle.Double(353,389, 6, 6);//宜昌
city[63]=new Rectangle.Double(418,372, 6, 6);//九江
city[64]=new Rectangle.Double(440,370, 6, 6);//安庆
city[65]=new Rectangle.Double(463,373, 6, 6);//合肥
city[66]=new Rectangle.Double(388,409, 6, 6);//岳阳
city[67]=new Rectangle.Double(280,436, 6, 6);//贵阳
city[68]=new Rectangle.Double(363,436, 6, 6);//怀化
city[69]=new Rectangle.Double(388,435, 6, 6);//株洲
city[70]=new Rectangle.Double(334,500, 6, 6);//柳州
city[71]=new Rectangle.Double(349,482, 6, 6);//桂林
city[72]=new Rectangle.Double(395,482, 6, 6);//郴州
city[73]=new Rectangle.Double(395,497, 6, 6);//韶关
city[74]=new Rectangle.Double(467,428, 6, 6);//鹰潭
city[75]=new Rectangle.Double(497,413, 6, 6);//横峰
city[76]=new Rectangle.Double(479,421, 6, 6);//1
city[77]=new Rectangle.Double(523,413, 6, 6);//金华西
city[78]=new Rectangle.Double(553,389, 6, 6);//宁波
city[79]=new Rectangle.Double(553,413, 6, 6);//2
city[80]=new Rectangle.Double(406,535, 4, 4);//3 +2+2
city[81]=new Rectangle.Double(450,516, 6, 6);//汕头
city[82]=new Rectangle.Double(484,502, 6, 6);//厦门
city[83]=new Rectangle.Double(498,498, 6, 6);//泉州
city[84]=new Rectangle.Double(510,489, 6, 6);//福州
city[85]=new Rectangle.Double(513,358, 6, 6);//4
for(i=29;i<86;i++){
g1.fill(city[i]);
}
Shape[] line=new Shape[100];
BasicStroke a=new BasicStroke(1.4f);
g1.setStroke(a);
g1.setColor(Color.darkGray);
line[0]=new Line2D.Double(596,85,587,100);
line[1]=new Line2D.Double(587,100,587,113);
line[2]=new Line2D.Double(587,113,584,125);
line[3]=new Line2D.Double(584,125,575,144);
line[4]=new Line2D.Double(575,144,566,153);//
line[5]=new Line2D.Double(566,153,566,169);//
line[6]=new Line2D.Double(566,169,561,183);//
line[7]=new Line2D.Double(561,183,556,195);//
line[8]=new Line2D.Double(556,195,556,203);//
line[9]=new Line2D.Double(556,203,549,209);//
line[10]=new Line2D.Double(549,209,549,218);//大连549,218
line[11]=new Line2D.Double(566,169,520,183);//沈阳566,169
line[12]=new Line2D.Double(520,183,493,219);//
line[13]=new Line2D.Double(493,219,462,216);//
line[14]=new Line2D.Double(462,216,436,221);//北京436.221
line[15]=new Line2D.Double(493,219,490,231);
line[16]=new Line2D.Double(490,231,464,232);//天津464,232
line[17]=new Line2D.Double(464,232,436,221);//
line[18]=new Line2D.Double(436,221,419,253);//石家庄419,253
line[19]=new Line2D.Double(419,253,419,301);//
line[20]=new Line2D.Double(419,301,409,316);;//郑州409,316
line[21]=new Line2D.Double(409,316,407,399);//武汉407.399
line[22]=new Line2D.Double(407,399,391,412);//岳阳
line[23]=new Line2D.Double(391,412,391,465);//衡阳392,465
line[24]=new Line2D.Double(391,465,398,485);//
line[25]=new Line2D.Double(398,485,397,528);//广州397.528
line[26]=new Line2D.Double(397,528,408,537);
line[27]=new Line2D.Double(397,528,380,547);//澳门380,547
line[28]=new Line2D.Double(408,537,418,541);//深圳418,541
line[29]=new Line2D.Double(418,541,453,519);//
line[30]=new Line2D.Double(453,519,487,505);//
line[31]=new Line2D.Double(487,505,501,501);//
line[32]=new Line2D.Double(501,501,513,492);//
line[33]=new Line2D.Double(513,492,547,433);//温州547,433
line[34]=new Line2D.Double(547,433,556,416);
line[35]=new Line2D.Double(556,416,556,392);//
line[36]=new Line2D.Double(556,392,529,383);//杭州529,383
line[37]=new Line2D.Double(529,383,539,366);//上海539,366
line[38]=new Line2D.Double(539,366,516,361);//
line[39]=new Line2D.Double(516,361,492,350);//南京492,350
line[40]=new Line2D.Double(492,350,477,341);//
line[41]=new Line2D.Double(477,341,468,317);//徐州468,317
line[42]=new Line2D.Double(468,317,446,315);//
line[43]=new Line2D.Double(446,315,296,315);//
line[44]=new Line2D.Double(296,315,226,286);//兰州226,286
line[45]=new Line2D.Double(226,286,193,266);//
line[46]=new Line2D.Double(241,371,283,403);//成都241,371
line[47]=new Line2D.Double(286,232,304,256);//重庆283,403
line[48]=new Line2D.Double(283,403,356,392);//
line[49]=new Line2D.Double(356,392,407,399);//武汉407,399
line[50]=new Line2D.Double(407,399,421,375);//
line[51]=new Line2D.Double(421,375,443,373);//
line[52]=new Line2D.Double(443,373,466,376);//
line[53]=new Line2D.Double(466,376,492,350);//南京492,350
line[54]=new Line2D.Double(304,256,249,262);//
line[55]=new Line2D.Double(304,256,381,256);//太原381,256
line[56]=new Line2D.Double(381,256,400,256);//
line[57]=new Line2D.Double(400,256,419,253);//石家庄419,253
line[58]=new Line2D.Double(481,267,464,258);//北京436,211
line[59]=new Line2D.Double(419,253,438,258);//
line[60]=new Line2D.Double(438,258,464,258);//
line[61]=new Line2D.Double(464,258,464,232);//天津464,232
line[62]=new Line2D.Double(481,267,526,269);//济南481,267
line[63]=new Line2D.Double(526,269,539,278);//青岛539,278
line[64]=new Line2D.Double(468,317,468,296);
line[65]=new Line2D.Double(468,296,481,267);//济南481,267
line[66]=new Line2D.Double(328,532,337,503);//南宁328,532
line[67]=new Line2D.Double(337,503,352,485);
line[68]=new Line2D.Double(352,485,392,465);//衡阳392,465
line[69]=new Line2D.Double(233,481,283,439);//昆明233,481
line[70]=new Line2D.Double(283,439,366,439);
line[71]=new Line2D.Double(366,439,391,438);
line[72]=new Line2D.Double(391,429,448,416);//长沙391,429
line[73]=new Line2D.Double(448,416,470,431);//南昌448,416
line[74]=new Line2D.Double(470,431,502,416);
line[75]=new Line2D.Double(502,416,482,424);
line[76]=new Line2D.Double(502,416,526,416);
line[77]=new Line2D.Double(526,416,529,383);//杭州529,383
for(i=0;i<78;i++){
g1.draw(line[i]);
}
g1.drawString("北京",425,210);
g1.drawString("上海",549,366);
g1.drawString("西安",312,309);
g1.drawString("成都",228,363);
g1.drawString("武汉",397,389);
g1.drawString("广州",382,526);
g1.drawString("哈尔滨",607,87);
g1.drawString("长春",590,128);
g1.drawString("沈阳",578,169);
g1.drawString("大连",559,220);
g1.drawString("天津",454,228);
g1.drawString("石家庄",409,250);
g1.drawString("太原",371,251);
g1.drawString("济南",480,282);
g1.drawString("青岛",548,280);
g1.drawString("兰州",212,300);
g1.drawString("郑州",389,307);
g1.drawString("徐州",476,317);
g1.drawString("南京",498,348);
g1.drawString("重庆",286,397);
g1.drawString("杭州",505,383);
g1.drawString("南昌",443,412);
g1.drawString("长沙",367,429);
g1.drawString("昆明",223,494);
g1.drawString("衡阳",402,465);
g1.drawString("南宁",318,545);
g1.drawString("深圳",418,553);
g1.drawString("澳门",384,555);
g1.drawString("温州",559,438);
g1.drawString("锦州",505,175);
g1.drawString("秦皇岛",500,221);
g1.drawString("中卫",236,254);
g1.drawString("银川",273,227);
g1.drawString("定边",306,247);
g1.drawString("贵阳",282,452);
g1.drawString("桂林",339,477);
g1.drawString("汕头",452,533);
g1.drawString("厦门",482,520);
g1.drawString("泉州",503,504);
g1.drawString("福州",520,489);
}
}
}