<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小程序
    主站蜘蛛池模板: 国产一卡二卡四卡免费| 国产成人一区二区三区免费视频| 2017亚洲男人天堂一| 国产免费卡一卡三卡乱码| 3344在线看片免费| 色偷偷女男人的天堂亚洲网| 亚洲免费视频一区二区三区| 最好看的中文字幕2019免费| 美女被免费网站在线视频免费| 亚洲成色在线综合网站| 国产成人在线免费观看| 久久成人免费大片| 色窝窝亚洲AV网在线观看| 7777久久亚洲中文字幕蜜桃| 国产免费私拍一区二区三区| 亚洲黄色片免费看| 一道本不卡免费视频| 亚洲偷自精品三十六区| 亚洲综合色自拍一区| 国产免费一区二区三区VR| 免费A级毛片无码A∨中文字幕下载| 精品亚洲福利一区二区| 亚洲黄色在线观看视频| 国产亚洲av片在线观看18女人| 男人的好免费观看在线视频| 女同免费毛片在线播放| 成人精品综合免费视频| 中文字幕乱码亚洲无线三区 | 97在线视频免费播放| 美女无遮挡免费视频网站| 亚洲精品在线不卡| 亚洲一区爱区精品无码| 免费在线不卡视频| 好吊妞在线成人免费| 国产精彩免费视频| 性xxxxx大片免费视频| 久久国产精品免费一区| 羞羞漫画登录页面免费| 亚洲AV日韩AV无码污污网站| 亚洲a级片在线观看| 亚洲精品在线播放视频|