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 + -
显示快捷键?