微博上各种星座排名泛滥了,写个程序凑个热闹。。
package go.derek; import java.awt.Graphics; import java.awt.Image; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.Collections; import java.util.List; import javax.swing.*; class Rank { JFrame jf=new JFrame("星座各种排名生成器"); JLabel jl1=new JLabel("请输入排行标题:"); JLabel jl2=new JLabel("排行情况:"); JTextField jt=new JTextField(20); JTextArea ja=new JTextArea(11,16); JButton 随机生成=new JButton("随机生成"); JButton 继续忽悠=new JButton("继续忽悠"); List<String> stars=new ArrayList<>(); List<String> rk=new ArrayList<>(); Box y=Box.createVerticalBox(); Box x1=Box.createHorizontalBox(); Box x2=Box.createHorizontalBox(); Box x3=Box.createHorizontalBox(); String result=""; void init() { x1.add(jl1); x1.add(jt); x1.add(Box.createHorizontalStrut(10)); x2.add(jl2); x2.add(ja); x2.add(Box.createHorizontalStrut(10)); x3.add(Box.createHorizontalStrut(18)); x3.add(随机生成); x3.add(Box.createHorizontalStrut(10)); x3.add(继续忽悠); y.add(Box.createVerticalStrut(28)); y.add(x1); y.add(Box.createVerticalStrut(28)); y.add(x2); y.add(Box.createVerticalStrut(28)); y.add(x3); y.add(Box.createVerticalStrut(28)); jf.add(y); jf.pack(); jf.setVisible(true); stars.add("巨蟹座,"); stars.add("白羊座,"); stars.add("摩羯座,"); stars.add("处女座,"); stars.add("天蝎座,"); stars.add("双鱼座,"); stars.add("射手座,"); stars.add("狮子座,"); stars.add("双子座,"); stars.add("金牛座,"); stars.add("天秤座,"); stars.add("水瓶座,"); rk.add("第一名:"); rk.add("第二名:"); rk.add("第三名:"); rk.add("第四名:"); rk.add("第五名:"); rk.add("第六名:"); rk.add("第七名:"); rk.add("第八名:"); rk.add("第九名:"); rk.add("第十名:"); rk.add("第十一名:"); rk.add("第十二名:"); 随机生成.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(!(ja.getText().equals(""))) ja.setText(""); else{ //stars是由十二星座构成的一个有序集合,下面这句代码是将这个有序集合随机排序 Collections.shuffle(stars); //用循环遍历新生成的排名 for(int i=0;i<stars.size();i++) { String rt=rk.get(i)+stars.get(i); if(i==2) rt+="\n"; if(i==5) rt+="\n"; if(i==8) rt+="\n"; result+=rt; } String jt1=jt.getText()+"\n"; result=jt1+result; ja.setText(result); result=""; } } }); 继续忽悠.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { jt.setText(""); ja.setText(""); result=""; } }); } void initFrame() { JPanel GImage = new JPanel() { private static final long serialVersionUID = 1L; protected void paintComponent(Graphics g) { ImageIcon icon = new ImageIcon("D:\\sky.jpg"); Image img = icon.getImage(); g.drawImage(img, 0, 0, icon.getIconWidth(), icon.getIconHeight(), icon.getImageObserver()); jf.setSize(356,398); } }; jf.add(GImage); jf.pack(); jf.setVisible(true); } public static void main(String[] args) { Rank rk=new Rank(); rk.init(); rk.initFrame(); } }