import javax.swing.ImageIcon; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JFrame; import javax.swing.JLabel; import java.awt.Color; import java.awt.Dimension; import java.awt.Rectangle; import java.awt.Toolkit; import java.util.Arrays; import javax.swing.JTextField; import javax.swing.JButton; public class SwingOk extends JFrame { private static final long serialVersionUID = 1L; private JPanel jContentPane = null; private JLabel jLabel_input = null; private JTextField jTextField_input = null; private JButton jButton_sure = null; private JButton jButton_sur = null; private JLabel jLabel_title = null; private JButton jButton_cancel = null; private JTextField str2[] = new JTextField[20]; private JLabel str[] = new JLabel[20]; private JLabel jLabel_2 = null; private JTextField jText = null; private int n=0; public SwingOk() { super(); initialize(); } private void initialize() { this.setSize(315, 207); this.setContentPane(getJContentPane()); this.setTitle("评分系统"); this.setResizable(false);//设置不能更改大小 ((JPanel) this.getContentPane()).setOpaque(false); ImageIcon img = new ImageIcon("C:\\Myeclipse2\\编程思想\\BJ0.jpg"); JLabel background = new JLabel(img); background.setSize(new Dimension(1024, 717)); this.getLayeredPane().add(background, new Integer(Integer.MIN_VALUE)); background.setBounds(0, 0, img.getIconWidth(), img.getIconHeight()); } private JPanel getJContentPane() { if (jContentPane == null) { jLabel_title = new JLabel(); jLabel_title.setBounds(new Rectangle(73, 20, 159, 36)); jLabel_title.setText("1240131班评委评分系统"); jLabel_input = new JLabel(); jLabel_input.setBounds(new Rectangle(40, 81, 112, 28)); jLabel_input.setText("请输入评委人数:"); jContentPane = new JPanel(); jContentPane.setLayout(null); jContentPane.add(jLabel_input, null); jContentPane.add(getJTextField_input(), null); jContentPane.add(getJButton_sure(), null); jContentPane.add(jLabel_title, null); jContentPane.add(getJButton_cancel(), null); } return jContentPane; } private JTextField getJTextField_input() { if (jTextField_input == null) { jTextField_input = new JTextField(); jTextField_input.setBounds(new Rectangle(182, 81, 75, 27)); jTextField_input.setToolTipText("请输入4到16的整数"); /** * 下面创建快捷键enter */ jTextField_input.addKeyListener(new java.awt.event.KeyListener() { public void keyPressed(java.awt.event.KeyEvent e) { if (e.getKeyCode() == 10) { if(jButton_sure.getText().equals("重置")){ jContentPane.remove(jLabel_2); jContentPane.remove(jText); jContentPane.remove(jButton_sur); jButton_sur=null; for(int i=1;i<=n;i++){ jContentPane.remove(str[i]); jContentPane.remove(str2[i]); } jTextField_input.setEditable(true); jButton_sure.setText("确认"); SwingOk.this.initialize(); }else { String number = jTextField_input.getText(); int i; for (i = 0; i < number.length(); i++) { if (number.charAt(i) >= '0' && number.charAt(i) <= '9') ; else { JOptionPane.showMessageDialog(null, "输入不合法"); break; } } if (number.length() == 0) { JOptionPane.showMessageDialog(null, "不能为空"); } else if (i >= number.length()) { n = Integer.parseInt(number); if (n <= 3 || n >= 16) JOptionPane.showMessageDialog(null, "输入不合法"); else { jButton_sure.setText("重置"); jTextField_input.setEditable(false); int y = 220; for (i = 1; i <= n; i++) { str[i] = new JLabel(); str2[i] = new JTextField(); if (i % 2 == 0) { str[i].setBounds(new Rectangle(160, y, 40, 24)); str2[i].setBounds(new Rectangle(237, y, 43, 27)); y += 50; } else { str[i].setBounds(new Rectangle(23, y, 40, 24)); str2[i].setBounds(new Rectangle(87, y, 43, 27)); } str[i].setText("评委" + i); str[i].setForeground(Color.green); str2[i].setText(String.valueOf(0)); str2[i].setForeground(Color.blue); str2[i].setBackground(Color.lightGray); jContentPane.add(str[i], null); jContentPane.add(str2[i], null); } if (n % 2 != 0) y += 50; jLabel_2 = new JLabel(); jLabel_2.setText("最终得分:"); jLabel_2.setForeground(Color.red); jLabel_2.setBounds(new Rectangle(23, y, 159, 36)); jContentPane.add(jLabel_2, null); jText = new JTextField(); jText.setBounds(new Rectangle(100, y, 43, 27)); jText.setEditable(false); jText.setForeground(Color.red); jContentPane.add(jText, null); jContentPane.add(getJButton_sur(y), null); SwingOk.this.setSize(315, 300 + ((n + 1) / 2) * 50); SwingOk.this.setVisible(true); } } } } } public void keyTyped(java.awt.event.KeyEvent e) { } public void keyReleased(java.awt.event.KeyEvent e) { } }); } return jTextField_input; } private JButton getJButton_sure() { if (jButton_sure == null) { jButton_sure = new JButton(); jButton_sure.setBounds(new Rectangle(52, 131, 75, 27)); jButton_sure.setText("确定"); jButton_sure.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { if(jButton_sure.getText().equals("重置")){ jContentPane.remove(jLabel_2); jContentPane.remove(jText); jContentPane.remove(jButton_sur); jButton_sur=null; for(int i=1;i<=n;i++){ jContentPane.remove(str[i]); jContentPane.remove(str2[i]); } jTextField_input.setEditable(true); jButton_sure.setText("确认"); SwingOk.this.initialize(); }else { String number = jTextField_input.getText(); int i; for (i = 0; i < number.length(); i++) { if (number.charAt(i) >= '0' && number.charAt(i) <= '9') ; else { JOptionPane.showMessageDialog(null, "输入不合法"); break; } } if (number.length() == 0) { JOptionPane.showMessageDialog(null, "不能为空"); } else if (i >= number.length()) { n = Integer.parseInt(number); if (n <= 3 || n >= 16) JOptionPane.showMessageDialog(null, "输入不合法"); else { jButton_sure.setText("重置"); jTextField_input.setEditable(false); int y = 220; for (i = 1; i <= n; i++) { str[i] = new JLabel(); str2[i] = new JTextField(); if (i % 2 == 0) { str[i].setBounds(new Rectangle(160, y, 40, 24)); str2[i].setBounds(new Rectangle(237, y, 43, 27)); y += 50; } else { str[i].setBounds(new Rectangle(23, y, 40, 24)); str2[i].setBounds(new Rectangle(87, y, 43, 27)); } str[i].setText("评委" + i); str[i].setForeground(Color.green); str2[i].setText(String.valueOf(0)); str2[i].setForeground(Color.blue); str2[i].setBackground(Color.lightGray); jContentPane.add(str[i], null); jContentPane.add(str2[i], null); } if (n % 2 != 0) y += 50; jLabel_2 = new JLabel(); jLabel_2.setText("最终得分:"); jLabel_2.setForeground(Color.red); jLabel_2.setBounds(new Rectangle(23, y, 159, 36)); jContentPane.add(jLabel_2, null); jText = new JTextField(); jText.setBounds(new Rectangle(100, y, 43, 27)); jText.setEditable(false); jText.setForeground(Color.red); jContentPane.add(jText, null); jContentPane.add(getJButton_sur(y), null); SwingOk.this.setSize(315, 300 + ((n + 1) / 2) * 50); SwingOk.this.setVisible(true); } } } } } ); } return jButton_sure; } private JButton getJButton_cancel() { if (jButton_cancel == null) { jButton_cancel = new JButton(); jButton_cancel.setBounds(new Rectangle(179, 131, 75, 27)); jButton_cancel.setText("取消"); jButton_cancel .addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { System.exit(0); } }); } return jButton_cancel; } private JButton getJButton_sur(int y) { if (jButton_sur == null) { jButton_sur = new JButton(); jButton_sur.setBounds(new Rectangle(175, y, 75, 27)); jButton_sur.setText("确定"); jButton_sur.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { int i=0; try { double a[] = new double[n]; for (i = 0; i < n; i++) { a[i] = Double.parseDouble((str2[i + 1].getText())); } Arrays.sort(a); double sum = 0; for (i = 1; i < n - 1; i++) { sum += a[i]; System.out.println(a[i]); } sum = sum / (n - 2); System.out.println(sum); String s=Double.toString(sum); int end=s.indexOf('.')+3>s.length()?s.length():s.indexOf('.')+3; jText.setText(s.substring(0, end)); } catch (NumberFormatException e1) { JOptionPane.showMessageDialog(null, "第"+(i+1)+"位评委输入有误!","警告",2); return ; } } }); } return jButton_sur; } public static void main(String[] args) { SwingOk frame = new SwingOk(); Center.centerFrame(frame); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } class Center { public static void centerFrame(JFrame frame) { Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize = frame.getSize(); if (frameSize.height > screenSize.height) { frameSize.height = screenSize.height; } if (frameSize.width > screenSize.width) { frameSize.width = screenSize.width; } frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2); } }
最近下载更多