<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    march alex's blog
    hello,I am march alex
    posts - 52,comments - 7,trackbacks - 0
    這個應用主要是為了生成座位的安排。程序運行后,在菜單欄中選擇打開文件,然后我們假設文件的格式為:每一行一個人名。
    例:
    風清揚
    無名僧
    東方不敗
    任我行
    喬峰
    虛竹
    段譽
    楊過
    郭靖
    黃蓉
    周伯通
    小龍女
    這個程序的特點如下:
    在JFrame中添加了菜單欄;
    在畫布中添加了諸多元素;
    最后會將圖片通過圖片緩存保存到本地“frame.png”中。
    代碼如下:
    import java.awt.Color;
    import java.awt.FlowLayout;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.image.BufferedImage;
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;

    import javax.imageio.ImageIO;
    import javax.swing.ImageIcon;
    import javax.swing.JFileChooser;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JList;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    import javax.swing.JPanel;


    public class FrameWork extends JFrame {
        
        private static final double pi = Math.acos(-1.0);
        private static final int Width = 1000;
        private static final int Height = 600;
        private static JFrame frame = null;
        
        private static int personNumber = 15;
        private static String[] names = new String[100];
        
        public FrameWork() {
            frame = new JFrame("Java菜單欄");
            
            //JList list = new JList();
            
    //frame.add(list);
            
            JMenuBar menuBar = new JMenuBar();
            frame.setJMenuBar(menuBar);
            
            JMenu fileMenu = new JMenu("文件");
            JMenu openMenu = new JMenu("打開");
            JMenuItem openItem = new JMenuItem("文件");
            openMenu.add(openItem);
            openItem.addActionListener(new MyAction());
            fileMenu.add(openMenu);
            menuBar.add(fileMenu);
            
            frame.setLocationRelativeTo(null);
            frame.setSize(Width, Height);
            frame.setLocation(100, 100);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            
            //JPanel panel = new ImagePanel();
            
    //panel.setBounds(0, 0, Width, Height);
            
    //frame.getContentPane().add(panel);
            
            frame.setVisible(true);
        }
        
        private static int getNumber1(int i) {
            int n = personNumber;
            if((n-1)/2*2-2*i >= 0) return (n-1)/2*2 - 2*i;
            return (i-(n-1)/2)*2-1;
        }
        
        private static int getNumber2(int i) {
            if(i*2+1 <= personNumber) return i*2;
            return 2*(personNumber-i)-1;
        }
        
        private class MyAction implements ActionListener {
            public void actionPerformed(ActionEvent evt) {
                //Object s = evt.getSource();
                JFileChooser jfc=new JFileChooser();
                jfc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES );
                jfc.showDialog(new JLabel(), "選擇");
                File file=jfc.getSelectedFile();
                /*if(file.isDirectory()){
                    System.out.println("文件夾:"+file.getAbsolutePath());
                }else if(file.isFile()){
                    System.out.println("文件:"+file.getAbsolutePath());
                }
    */
                personNumber = 0;
                BufferedReader reader;
                try {
                    reader = new BufferedReader(new FileReader(file.getAbsolutePath()));
                    while((names[personNumber]=reader.readLine()) != null) {
                        personNumber ++;
                    }
                    reader.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
                JPanel panel = new ImagePanel();
                panel.setBounds(0, 0, Width, Height);
                frame.getContentPane().add(panel);
                frame.setVisible(true);
                //System.out.println(personNumber);
                
    //for(int i=0;i<personNumber;i++) 
                    
    //System.out.println(names[i]);
                BufferedImage  bi = new BufferedImage(frame.getWidth(), frame.getHeight(), BufferedImage.TYPE_INT_ARGB);
                Graphics2D  g2d = bi.createGraphics();
                frame.paint(g2d);
                try {
                    ImageIO.write(bi, "PNG", new File("D:\\frame.png"));
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        
        class ImagePanel extends JPanel {
            public void paint(Graphics g) {
                super.paint(g);
                g.setColor(Color.white);
                g.fillRect(0, 0, Width, Height);
                g.setColor(Color.black);
                int delx = (Width - 20) / (personNumber + 1);
                for(int i=0;i<personNumber;i++) {
                    int x = i * delx + 10;
                    g.drawRect(x, 10, delx, 20);
                    //String s = "" + getNumber1(i);
                    int id = getNumber1(i);
                    String s = names[id];
                    g.drawString(s, x+2, 22);
                    
                    //s =  "" + getNumber2(i);
                    id = getNumber2(i);
                    s = names[id];
                    int x0 = 440, y0 = 285, r = 170;
                    int xx = (int) (x0 - r * Math.sin(pi*2*i/personNumber));
                    int yy = (int) (y0 - r * Math.cos(pi*2*i/personNumber));
                    g.drawString(s, xx, yy);
                }
                g.drawOval(300, 130, 300, 300);
                
            }
        }
        
        public static void main(String[] args) {
            new FrameWork();
        }
    }

    posted on 2015-03-18 20:20 marchalex 閱讀(287) 評論(0)  編輯  收藏 所屬分類: java小程序
    主站蜘蛛池模板: 免费无码精品黄AV电影| 污视频在线观看免费| 黄页网站免费在线观看| 色噜噜综合亚洲av中文无码| 免费国产黄网站在线观看可以下载 | 看亚洲a级一级毛片| 午夜爱爱免费视频| 亚洲欧美日韩中文字幕在线一区| 亚洲精品动漫免费二区| 亚洲国产系列一区二区三区| 日本免费网址大全在线观看| 亚洲日韩精品无码专区加勒比☆| 免费的一级片网站| rh男男车车的车车免费网站| 久久久久亚洲AV成人网人人软件| 精品97国产免费人成视频| 亚洲αv久久久噜噜噜噜噜| 日日麻批免费40分钟无码 | 亚洲综合日韩中文字幕v在线| 永久免费视频网站在线观看| 67194在线午夜亚洲| 四虎永久免费影院| 丝袜足液精子免费视频| 久久亚洲国产伦理| 拨牐拨牐x8免费| 老司机午夜在线视频免费| 亚洲精品白浆高清久久久久久| 亚洲AⅤ无码一区二区三区在线| 免费国产污网站在线观看不要卡| 久久久久国产亚洲AV麻豆| 热re99久久6国产精品免费| 亚洲人配人种jizz| 亚洲综合亚洲综合网成人| 国精产品一区一区三区免费视频 | 午夜精品在线免费观看| GOGOGO高清免费看韩国| 亚洲一级毛片在线观| 中文字幕第一页亚洲| 18禁美女裸体免费网站| 无码免费又爽又高潮喷水的视频 | 中文字幕免费在线看线人 |