📄 gradeview.java
字号:
package GradeManagement.ui;
import java.awt.*;
import java.util.Observer;
import java.util.Observable;
import javax.swing.*;
import GradeManagement.ComputeGrade;
import GradeManagement.model.GradeModel;
import GradeManagement.util.SystemConstants;
public class GradeView extends JPanel implements Observer {
private GradeModel gradeModel;
private JTextArea jp = new JTextArea(40, 60);
public GradeView(GradeModel model) {
setBackground(Color.white); // 设置背景颜色
setDoubleBuffered(true); // 避免屏幕闪烁
setModel(model);
jp.setEditable(false); // 设置为不可编辑
add("Center", new JScrollPane(jp));
}//构造方法结束GradeView
public void setModel( GradeModel model ) {
if (gradeModel != null)
gradeModel.deleteObserver( this );
gradeModel = model;
if ( model != null ) {
model.addObserver( this );
repaint();
}
} // 方法setModel结束
public GradeModel getModel() {
return gradeModel;
}
public void update( Observable observable, Object object ) {
repaint();
}
public void paintComponent( Graphics g ) {
super.paintComponent(g);
jp.setText(""); // 清除文本区域
jp.append( gradeModel.getDisTitle() + "\n");
jp.append( SystemConstants.SEPLINE );
for (int i = 0; i < gradeModel.size(); i++) {
jp.append(gradeModel.getIndex(i).toString());
if (gradeModel.getComputFlag()) {
jp.append(((ComputeGrade)gradeModel.getIndex(i)).sum() + "\t");
jp.append(((ComputeGrade)gradeModel.getIndex(i)).average() + "\t");
}
jp.append("\n" + SystemConstants.SEPLINE);
}
} // 方法paintComponent结束
public Dimension getPreferredSize() {
return new Dimension( 500, 240 );
}
public Dimension getMinimumSize() {
return getPreferredSize();
}
public Dimension getMaximumSize() {
return getPreferredSize();
}
public void addNotify() {
super.addNotify();
gradeModel.addObserver( this );
}
public void removeNotify() {
super.removeNotify();
gradeModel.deleteObserver( this );
}
} // 类GradeView结束
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -