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);
}
}