📄 scorecompute.java
字号:
import java.awt.BasicStroke;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.util.regex.Pattern;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
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.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;
public class ScoreCompute extends JFrame{
private JFrame jFrame = null;
private JPanel jContentPane = null;
private JMenuBar jJMenuBar = null;
private JMenu fileMenu = null;
private JMenu helpMenu = null;
private JMenuItem exitMenuItem = null;
private JMenuItem aboutMenuItem = null;
private JMenuItem saveMenuItem = null;
private JDialog aboutDialog = null; // @jve:decl-index=0:visual-constraint="379,823"
private JDialog helpDialog = null; // @jve:decl-index=0:visual-constraint="278,-5"
private JPanel aboutContentPane = null;
private JPanel helpContentPane = null;
private JLabel aboutVersionLabel = null;
private JLabel aboutHelpLabel = null;
private JMenuItem useMenuItem = null;
private JLabel xuekeLabel = null;
private JLabel numberLabel = null;
private JLabel scoreLabel = null;
private JLabel xuefenLabel = null;
private JTextField xuekeTextField = null;
private JTextField scoreTextField = null;
private JLabel tongjiLabel = null;
private JButton jButton = null;
private JComboBox jComboBox = null;
private JList jList = null;
private JLabel jLabel = null;
private JLabel jLabel1 = null;
private JLabel jLabel2 = null;
private DefaultListModel listModel = null;
private JButton jButton1 = null;
private JButton jButton2 = null;
private JScrollPane jScrollPane = null;
private int remnum = 0;
private JLabel jLabel11 = null;
private JLabel jLabel12 = null;
private JLabel jLabel13 = null;
private JLabel jLabel14 = null;
private JLabel jLabel15 = null;
private JLabel jLabel16 = null;
private JLabel jLabel17 = null;
private JLabel jLabel18 = null;
private JLabel jLabel19 = null;
private JLabel jLabel20 = null;
private JLabel jLabel21 = null;
private JLabel jLabel22 = null;
private JLabel jLabel23 = null;
private JLabel jLabel24 = null;
private JLabel jLabel25 = null;
private JLabel jLabel26 = null;
private JLabel jLabel27 = null;
private JLabel jLabel28 = null;
private JLabel jLabel29 = null;
private int totalxuefen = 0;
private double averagescore = 0;
private double totalchengji = 0;
private double averagepoint = 0;
private double averagescorepoint = 0;
/**
* This method initializes xuekeTextField
*
* @return javax.swing.JTextField
*/
private JTextField getXuekeTextField() {
if (xuekeTextField == null) {
xuekeTextField = new JTextField();
xuekeTextField.setBounds(new Rectangle(374, 13, 177,
21));
}
return xuekeTextField;
}
//PanelExample newpaint = new PanelExample();
/**
* This method initializes scoreTextField
*
* @return javax.swing.JTextField
*/
private JTextField getScoreTextField() {
if (scoreTextField == null) {
scoreTextField = new JTextField();
scoreTextField.setBounds(new Rectangle(374, 43, 176,
19));
}
return scoreTextField;
}
/**
* This method initializes jButton
*
* @return javax.swing.JButton
*/
private JButton getJButton() {
if (jButton == null) {
jButton = new JButton();
jButton.setBounds(new Rectangle(345, 115, 169, 23));
jButton.setText("提 交");
jButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
char xuekechar[] = new char[10];
//listnumber= jList.getLastVisibleIndex();
String str="";
String setright = "";
String xuekestr = xuekeTextField.getText();
if(xuekeTextField.getText().trim().equals(""))
{
JOptionPane.showMessageDialog(null, "您还未输入课程的名称!", "温馨提示",JOptionPane.INFORMATION_MESSAGE);
setright="false";
}
else
setright="ok";
if(setright=="ok"){
//处理成绩的输入,并做数字校验
if(scoreTextField.getText().trim().equals("")||!Pattern.matches("^[0-9|.]*$",scoreTextField.getText())||scoreTextField.getText().trim().length()>4){
setright="false";
JOptionPane.showMessageDialog(null, "您未输入或输入的成绩有误!", "温馨提示",JOptionPane.INFORMATION_MESSAGE);
}
else {
double socrecheck = Double.parseDouble(scoreTextField.getText().trim());
if(socrecheck<0||socrecheck>100){
JOptionPane.showMessageDialog(null, "您未输入或输入的成绩有误!", "温馨提示",JOptionPane.INFORMATION_MESSAGE);
setright="false";
}
else{
str += scoreTextField.getText();
setright="ok";
}
}
}
if(setright == "ok"){
//str 格式处理
str +=" "; //共计12个空格
//处理jComboBox的选择
if(jComboBox.getSelectedItem() == "请选择学分")
{
JOptionPane.showMessageDialog(null, "请你选择该门课程的学分!", "温馨提示",JOptionPane.INFORMATION_MESSAGE);
setright = "false";
}
else{
str += jComboBox.getSelectedItem();
setright = "ok";
}
}
if(setright == "ok"){
//str 格式处理
str +=" "; //共计5个空格
//限制课程名称的字符数不超过10
if(xuekestr.length() > 10){
xuekestr.getChars(0, 10, xuekechar, 0);
for(int i=0;i<10;i++){
str += xuekechar[i];
}
}
else
{
str +=xuekestr;
}
}
if(setright=="ok")
{
listModel.addElement(str);
jList.setModel(listModel);
computercenter();
xuekeTextField.setText("");
scoreTextField.setText("");
}
}
});
//String score = scoreTextField.getText();
}
return jButton;
}
/**
* This method initializes jComboBox
*
* @return javax.swing.JComboBox
*/
private JComboBox getJComboBox() {
if (jComboBox == null) {
jComboBox = new JComboBox();
jComboBox.addItem("请选择学分");
jComboBox.addItem(0);
jComboBox.addItem(1);
jComboBox.addItem(2);
jComboBox.addItem(3);
jComboBox.addItem(4);
jComboBox.addItem(5);
jComboBox.addItem(6);
jComboBox.addItem(7);
jComboBox.addItem(8);
jComboBox.setBounds(new Rectangle(374, 76, 110, 20));
}
return jComboBox;
}
/**
* This method initializes jList
*
* @return javax.swing.JList
*/
private JList getJList() {
if (jList == null) {
jList = new JList();
listModel = new DefaultListModel();
jList.setBounds(new Rectangle(6, 65, 268, 382));
}
return jList;
}
/**
* This method initializes jButton1
*
* @return javax.swing.JButton
*/
private JButton getJButton1() {
if (jButton1 == null) {
jButton1 = new JButton();
jButton1.setBounds(new Rectangle(18, 455, 90, 25));
jButton1.setText("移除");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
remnum=jList.getSelectedIndex();
if(remnum == -1)
JOptionPane.showMessageDialog(null, "请选择要删除的项!", "温馨提示",JOptionPane.INFORMATION_MESSAGE);
else
listModel.remove(remnum);
computercenter();
}
});
}
return jButton1;
}
/**
* This method initializes jButton2
*
* @return javax.swing.JButton
*/
private JButton getJButton2() {
if (jButton2 == null) {
jButton2 = new JButton();
jButton2.setBounds(new Rectangle(144, 455, 90, 25));
jButton2.setText("清空");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
listModel.clear();
computercenter();
}
});
}
return jButton2;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
SwingUtilities.invokeLater(new Runnable() {
public void run() {
ScoreCompute application = new ScoreCompute();
application.getJFrame().setVisible(true);
}
});
}
/**
* This method initializes jFrame
*
* @return javax.swing.JFrame
*/
private JFrame getJFrame() {
if (jFrame == null) {
jFrame = new JFrame();
jFrame.setDefaultCloseOperation
(JFrame.EXIT_ON_CLOSE);
jFrame.setEnabled(true);
jFrame.setResizable(false);
jFrame.setLocation(new Point(200, 200));
jFrame.setJMenuBar(getJJMenuBar());
jFrame.setSize(957, 543);
jFrame.setContentPane(getJContentPane());
jFrame.setTitle("小智星——学分计算器(川大版)");
}
return jFrame;
}
/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
jLabel11 = new JLabel();
jLabel11.setBounds(new Rectangle(11, 66, 22, 14));
jLabel11.setText("1");
jLabel12 = new JLabel();
jLabel12.setBounds(new Rectangle(11, 86, 22, 14));
jLabel12.setText("2");
jLabel13 = new JLabel();
jLabel13.setBounds(new Rectangle(11, 106, 22, 14));
jLabel13.setText("3");
jLabel14 = new JLabel();
jLabel14.setBounds(new Rectangle(11, 126, 22, 14));
jLabel14.setText("4");
jLabel15 = new JLabel();
jLabel15.setBounds(new Rectangle(11, 146, 22, 14));
jLabel15.setText("5");
jLabel16 = new JLabel();
jLabel16.setBounds(new Rectangle(11, 166, 22, 14));
jLabel16.setText("6");
jLabel17 = new JLabel();
jLabel17.setBounds(new Rectangle(11, 186, 22, 14));
jLabel17.setText("7");
jLabel18 = new JLabel();
jLabel18.setBounds(new Rectangle(11, 206, 22, 14));
jLabel18.setText("8");
jLabel19 = new JLabel();
jLabel19.setBounds(new Rectangle(11, 226, 22, 14));
jLabel19.setText("9");
jLabel20 = new JLabel();
jLabel20.setBounds(new Rectangle(11, 246, 22, 14));
jLabel20.setText("10");
jLabel21 = new JLabel();
jLabel21.setBounds(new Rectangle(11, 266, 22, 14));
jLabel21.setText("11");
jLabel22 = new JLabel();
jLabel22.setBounds(new Rectangle(11, 286, 22, 14));
jLabel22.setText("12");
jLabel23 = new JLabel();
jLabel23.setBounds(new Rectangle(11, 306, 22, 14));
jLabel23.setText("13");
jLabel24 = new JLabel();
jLabel24.setBounds(new Rectangle(11, 326, 22, 14));
jLabel24.setText("14");
jLabel25 = new JLabel();
jLabel25.setBounds(new Rectangle(11, 346, 22, 14));
jLabel25.setText("15");
jLabel26 = new JLabel();
jLabel26.setBounds(new Rectangle(11, 366, 22, 14));
jLabel26.setText("16");
jLabel27 = new JLabel();
jLabel27.setBounds(new Rectangle(11, 386, 22, 14));
jLabel27.setText("17");
jLabel28 = new JLabel();
jLabel28.setBounds(new Rectangle(11, 406, 22, 14));
jLabel28.setText("18");
jLabel29 = new JLabel();
jLabel29.setBounds(new Rectangle(11, 426, 22, 14));
jLabel29.setText("19");
jLabel2 = new JLabel();
jLabel2.setBounds(new Rectangle(78, 41, 36, 18));
jLabel2.setText("学分");
jLabel1 = new JLabel();
jLabel1.setBounds(new Rectangle(41, 41, 36, 18));
jLabel1.setText("成绩");
jLabel = new JLabel();
jLabel.setBounds(new Rectangle(114, 41, 45, 18));
jLabel.setText("课程名");
numberLabel = new JLabel();
numberLabel.setBounds(new Rectangle(9, 41, 32, 18));
numberLabel.setText("编号");
tongjiLabel = new JLabel();
tongjiLabel.setBounds(new Rectangle(6, 6, 48, 29));
tongjiLabel.setText("统计表");
xuefenLabel = new JLabel();
xuefenLabel.setBounds(new Rectangle(300, 72, 56, 23));
xuefenLabel.setText("学 分 :");
scoreLabel = new JLabel();
scoreLabel.setBounds(new Rectangle(300, 43, 56, 23));
scoreLabel.setText("总成绩 :");
xuekeLabel = new JLabel();
xuekeLabel.setBounds(new Rectangle(300, 13, 56, 23));
xuekeLabel.setText("课程名 :");
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane = (JPanel)getContentPane();
jContentPane.add(numberLabel, null);
jContentPane.add(xuekeLabel, null);
jContentPane.add(scoreLabel, null);
jContentPane.add(xuefenLabel, null);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -