• Java MessagePanel


    一个小测试,MessagePanel继承于Panel,显示结果为:

      1 import java.awt.*;
      2 
      3 import javax.swing.*;
      4 
      5 public class hello extends JFrame{
      6     public hello(){
      7         MessagePanel mp1=new MessagePanel("Welcome to Java");
      8         MessagePanel mp2=new MessagePanel("Java is fun");
      9         MessagePanel mp3=new MessagePanel("Java is cool");
     10         MessagePanel mp4=new MessagePanel("I love Java");
     11         
     12         mp1.setFont(new Font("SansSerif",Font.ITALIC,20));
     13         mp2.setFont(new Font("Courier",Font.BOLD,20));
     14         mp3.setFont(new Font("Times",Font.ITALIC,20));
     15         mp4.setFont(new Font("Californian FB",Font.PLAIN,20));
     16         
     17         mp1.setBackground(Color.red);
     18         mp2.setBackground(Color.cyan);
     19         mp3.setBackground(Color.green);
     20         mp4.setBackground(Color.white);
     21         mp1.setCentered(true);
     22         
     23         setLayout(new GridLayout(2,2));
     24         add(mp1);
     25         add(mp2);
     26         add(mp3);
     27         add(mp4);
     28     }
     29     
     30     public static void main(String[] args){
     31         hello frame=new hello();
     32         frame.setSize(300,200);
     33         frame.setTitle("Test MessagePanel");
     34         frame.setLocationRelativeTo(null);
     35         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     36         frame.setVisible(true);
     37     }
     38 }
     39 
     40 
     41 class MessagePanel extends JPanel{
     42     private String message="Welcome to Java";
     43     private int xCoordinate=20;
     44     private int yCoordinate=20;
     45     private boolean centered;
     46     private int interval=10;
     47     public MessagePanel(){}
     48     public MessagePanel(String message){
     49         this.message=message;
     50     }
     51     public String getMessage(){
     52         return message;
     53     }
     54     public void getMessage(String message){
     55         this.message=message;
     56     }
     57     public int getXCoordinate(){
     58         return xCoordinate;
     59     }
     60     public void setXCoordinate(int x){
     61         this.xCoordinate=x;
     62         repaint();
     63     }
     64      public int getYCoordinate(){
     65         return yCoordinate;
     66     }
     67     public void setYCoordinate(int y){
     68         this.yCoordinate=y;
     69         repaint();
     70     }
     71     public boolean isCentered(){
     72         return centered;
     73     }
     74     public void setCentered(boolean centered){
     75         this.centered=centered;
     76         repaint();
     77     }
     78     
     79     public int getInterval(){
     80         return interval;
     81     }
     82     
     83     public void setinterVal(int interval){
     84         this.interval=interval;
     85         repaint();
     86     }
     87     protected void paintComponent(Graphics g){
     88         super.paintComponent(g);
     89         if(centered){
     90             FontMetrics fm = g.getFontMetrics();
     91             int stringWidth=fm.stringWidth(message);
     92             int stringAscent=fm.getAscent();
     93             xCoordinate=getWidth()/2-stringWidth/2;
     94             yCoordinate=getHeight()/2-stringAscent/2;
     95         }
     96         g.drawString(message, xCoordinate, yCoordinate);
     97     }
     98     public void moveLeft(){
     99         xCoordinate-=interval;
    100         repaint();
    101     }
    102     public void moveRight(){
    103         xCoordinate+=interval;
    104         repaint();
    105     }
    106 
    107     public void moveUp(){
    108         yCoordinate-=interval;
    109         repaint();
    110     }
    111     public void moveDown(){
    112         yCoordinate+=interval;
    113         repaint();
    114     }
    115     public Dimension getPreferredSize(){
    116         return new Dimension(200,30);
    117     }
    118     
    119 }
  • 相关阅读:
    Gradle在大型Java项目上的应用
    Spring MVC 构建入门级 Web 应用程序
    大公司最喜欢问的Java集合类面试题
    在Java中正确使用注释
    Java的wait(), notify()和notifyAll()使用心得
    Java中HashMap和TreeMap的区别深入理解
    初识PGM图片
    VS2013报错 error MSB8031解决方法
    matconvnet在MATLAB2013配置过程中遇到的问题
    配置VLFeat-0.9.20+MATLAB2013a
  • 原文地址:https://www.cnblogs.com/redlight/p/2557121.html
Copyright © 2020-2023  润新知