selfpanel.java
来自「软件工程实践课程的答案哦」· Java 代码 · 共 111 行
JAVA
111 行
import java.awt.*;
import javax.swing.*;
import java.io.*;
import java.awt.event.*;
import javax.swing.border.*;
import java.net.*;
class SelfPanel extends JPanel
{
public PaintPanel canvas;
JPanel mainMid;
JLabel mainLeft;
SelfInfo selfInfo ;
SelfPanel()
{
super();
mainMid = new JPanel(new BorderLayout());
this.setLayout(new BorderLayout());
this.add(mainMid,BorderLayout.CENTER);
//////////mainMid/////////////
canvas = new PaintPanel();
//canvas.setBorder(new LineBorder(new Color(2,116,84),3,true));
canvas.setBackground(Color.BLACK);
canvas.addKeyListener(canvas);
JPanel space2 = new JPanel(new BorderLayout());
space2.setBackground(GameFace.bgColor);
selfInfo = new SelfInfo();
space2.add(selfInfo,BorderLayout.CENTER);
mainMid.add(space2,BorderLayout.NORTH);
mainMid.add(canvas,BorderLayout.CENTER);
JPanel space1 = new JPanel(new GridLayout(3,1));
space1.setBackground(GameFace.bgColor);
for(int i=0;i<3;i++)
space1.add(new JLabel(" "));
mainMid.add(space1,BorderLayout.SOUTH);
mainMid.add(space2,BorderLayout.NORTH);
mainMid.add(new JLabel(" "),BorderLayout.EAST);
mainMid.setBackground(GameFace.bgColor);
JPanel space3 =new JPanel();
space3.add(Box.createVerticalStrut(17));
space3.setBackground(GameFace.bgColor);
///////mainLeft////////
mainLeft = new JLabel(" ");
this.add(space1,BorderLayout.NORTH);
this.add(space3,BorderLayout.SOUTH);
this.add(mainLeft,BorderLayout.WEST);
this.setBackground(GameFace.bgColor);
}
}
class SelfInfo extends JPanel
{
private String name;
private int score;
private ImageIcon icon=new ImageIcon("pics\\selfInfoLeftLine.gif");
URL infoImageURL = getClass().getResource("pics\\selfInfo.gif");
ImageIcon infoImage = new ImageIcon(infoImageURL);
public SelfInfo()
{
name ="";
score=0;
this.setLayout(new BorderLayout());
this.setBackground(Color.WHITE);
this.add(new JLabel(icon),BorderLayout.WEST);
}
public void setScore(int score)
{
this.score = score;
repaint();
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
repaint();
}
public void paintComponent(Graphics g)
{
this.setBackground(GameFace.bgColor);
super.paintComponent(g);
g.drawImage(infoImage.getImage(),0,0,GameFace.bgColor,this);
g.setFont(new Font("ScanSerif",Font.BOLD,15));
g.setColor(Color.blue);
FontMetrics fm=g.getFontMetrics();
int w=fm.stringWidth(name);
int h=fm.getAscent();
int xMiddle=(getSize().width-w)/2-5;
int yMiddle=(getSize().height-h)/2;
g.drawString(name,xMiddle,yMiddle+5);
g.drawString("Score: "+String.valueOf(score),120,48);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?