<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 閱讀(286) 評論(0)  編輯  收藏 所屬分類: java小程序
    主站蜘蛛池模板: 国产在线观看免费视频软件 | 亚洲第一AV网站| 无码一区二区三区亚洲人妻| 永久免费无码网站在线观看| 在线a亚洲老鸭窝天堂av高清| 18禁超污无遮挡无码免费网站国产| 亚洲sss综合天堂久久久| 成年美女黄网站色大免费视频| 亚洲最大免费视频网| 久久精品a一国产成人免费网站 | 成人免费无毒在线观看网站| 亚洲av产在线精品亚洲第一站| 九九精品免费视频| 亚洲AV女人18毛片水真多| 国产三级电影免费观看| 成人免费网站视频www| 国产亚洲精品美女久久久| 99热在线观看免费| 久久亚洲精品专区蓝色区| 国产精品无码一区二区三区免费| 九九九国产精品成人免费视频| 亚洲国产精品一区二区第一页| 1000部禁片黄的免费看| 亚洲成在人线aⅴ免费毛片| 久久精品国产精品亚洲艾草网美妙| 无人影院手机版在线观看免费 | 香蕉视频在线观看免费国产婷婷 | 一级a性色生活片久久无少妇一级婬片免费放 | 五级黄18以上免费看| 亚洲av永久无码制服河南实里| 午夜免费1000部| 国产亚洲情侣久久精品| 亚洲VA中文字幕不卡无码| 欧洲精品成人免费视频在线观看| 国产亚洲视频在线观看| 亚洲邪恶天堂影院在线观看| 日本高清免费不卡视频| 日本在线看片免费| 精品亚洲成a人在线观看| 亚洲成a人片77777老司机| 国产福利免费在线观看|