📄 testmessagepanel.java
字号:
import java.awt.*;
import javax.swing.*;
import java.awt.GridLayout;
class TestMessagePanel extends JFrame
{
public TestMessagePanel()
{
JPanel p1=new JPanel();
JPanel p2=new JPanel();
MessagePanel messageP1=new MessagePanel("java");
MessagePanel messageP2=new MessagePanel("HTML");
MessagePanel messageP3=new MessagePanel("");
MessagePanel messageP4=new MessagePanel("PHP");
messageP1.setFont(new Font("SansSerif",Font.ITALIC,15));
messageP2.setFont(new Font("SansSerif",Font.ITALIC,15));
messageP4.setFont(new Font("SansSerif",Font.ITALIC,15));
messageP2.setBackground(Color.GRAY);
messageP3.setBackground(Color.RED);
messageP4.setBackground(Color.GRAY);
messageP1.setCentered(true);
messageP2.setCentered(true);
messageP3.setCentered(true);
messageP4.setCentered(true);
getContentPane().add(p1,BorderLayout.CENTER);
getContentPane().add(p2,BorderLayout.EAST);
p1.setLayout(new GridLayout(1,1));
p1.add(messageP1);
p2.setLayout( new GridLayout(3,2));
p2.add(messageP2);
p2.add(messageP3);
p2.add(messageP4);
}
public static void main(String[] args)
{
TestMessagePanel frame=new TestMessagePanel();
frame.setSize(300,200);
frame.setTitle("Exercise 11_19");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
class MessagePanel extends JPanel
{
private String message="Welcome to java";
private int xCoordinate=20;
private int yCoordinate=20;
private boolean centered;
private int interval=10;
public MessagePanel()
{}
public MessagePanel(String message)
{
this.message=message;
}
public String getMessage()
{
return message;
}
public void setMessage(String message)
{
this.message=message;
}
public int getXCoordinate()
{
return xCoordinate;
}
public void setXCoordinate(int x)
{
this.xCoordinate=x;
}
public int getYCoordinate()
{
return yCoordinate;
}
public void setYCoordinate(int y)
{
this.yCoordinate=y;
}
public boolean isCentered()
{
return centered;
}
public void setCentered(boolean centered)
{
this.centered=centered;
repaint();
}
protected void paintComponent(Graphics g)
{
super.paintComponent(g);
if(centered)
{
FontMetrics fm=g.getFontMetrics();
int stringWidth=fm.stringWidth(message);
int stringAscent=fm.getAscent();
xCoordinate=getWidth()/2-stringWidth/2;
yCoordinate=getHeight()/2-stringAscent/2;
g.drawString(message,xCoordinate,yCoordinate);
}
}
public void moveLeft()
{
xCoordinate-=interval;
repaint();
}
public void moveRight()
{
xCoordinate+=interval;
repaint();
}
public void moveUp()
{
yCoordinate-=interval;
repaint();
}
public void moveDown()
{
yCoordinate+=interval;
repaint();
}
public Dimension getPreferredSize()
{
return new Dimension(200,30);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -