我想在面板中显示一条消息,“Welcome to java ",可结果没显示出来,哪位高手帮忙看看哪出问题了,我编了一个类MessagePanel,这是这个类的代码
package javax.swing;
import java.awt.Graphics;
import java.awt.Dimension;
import java.awt.FontMetrics;
import javax.swing.JPanel;
public class MessagePanel extends JPanel{
private String message="Welcome to java ";
private int XCoordinate=20;
private int YCoordinate=20;
private boolean centered=true; public MessagePanel() {
// TODO Auto-generated constructor stub
}
public MessagePanel(String message)
{this.message=message; }
public String getMessage()
{
return message;
}
public void setMessge(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;
}
public void PaintComponent(Graphics g)
{super.paintComponents(g);
if(centered)
//get font mertrics from the current font
{
FontMetrics fm=g.getFontMetrics() ;
int w=fm.stringWidth(message);
int h=fm.getAscent();
XCoordinate=getWidth()/2-w/2;
YCoordinate=getHeight()+h/2;
}
g.drawString(message, XCoordinate ,YCoordinate);
}
//overread get method for getPreferredSize
public Dimension getPreferredSize()
{return new Dimension(200,100); }
//overread method for minimumSize
public Dimension getMinimumSize()
{return new Dimension(200,100); } }
下面我又编了一个类TestFontMetrics ,其代码如下:
ackage javax.swing;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Font;
public class TestFontMetrics extends JFrame{ /**
* @param args
*
*/
public TestFontMetrics ()
{MessagePanel messagepanel=new MessagePanel("Welcome to java");
messagepanel.setFont(new Font("sansSerif",Font.BOLD,20));
messagepanel.setCentered(true);
getContentPane().add(messagepanel);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
TestFontMetrics frame=new TestFontMetrics ();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 300);
frame.setTitle("TestFontMetrics");
frame.setVisible(true); } }
这就是所有的代码,但是显示的没结果,哪位高手代码哪个地方出错了
package javax.swing;
import java.awt.Graphics;
import java.awt.Dimension;
import java.awt.FontMetrics;
import javax.swing.JPanel;
public class MessagePanel extends JPanel{
private String message="Welcome to java ";
private int XCoordinate=20;
private int YCoordinate=20;
private boolean centered=true; public MessagePanel() {
// TODO Auto-generated constructor stub
}
public MessagePanel(String message)
{this.message=message; }
public String getMessage()
{
return message;
}
public void setMessge(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;
}
public void PaintComponent(Graphics g)
{super.paintComponents(g);
if(centered)
//get font mertrics from the current font
{
FontMetrics fm=g.getFontMetrics() ;
int w=fm.stringWidth(message);
int h=fm.getAscent();
XCoordinate=getWidth()/2-w/2;
YCoordinate=getHeight()+h/2;
}
g.drawString(message, XCoordinate ,YCoordinate);
}
//overread get method for getPreferredSize
public Dimension getPreferredSize()
{return new Dimension(200,100); }
//overread method for minimumSize
public Dimension getMinimumSize()
{return new Dimension(200,100); } }
下面我又编了一个类TestFontMetrics ,其代码如下:
ackage javax.swing;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Font;
public class TestFontMetrics extends JFrame{ /**
* @param args
*
*/
public TestFontMetrics ()
{MessagePanel messagepanel=new MessagePanel("Welcome to java");
messagepanel.setFont(new Font("sansSerif",Font.BOLD,20));
messagepanel.setCentered(true);
getContentPane().add(messagepanel);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
TestFontMetrics frame=new TestFontMetrics ();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 300);
frame.setTitle("TestFontMetrics");
frame.setVisible(true); } }
这就是所有的代码,但是显示的没结果,哪位高手代码哪个地方出错了
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货