展开全部
你所谓的“吃掉”是因为描绘的起点(矩形左上角那点)是相对Frame的左上角开e5a48de588b63231313335323631343130323136353331333330343164始的,自然包括了标题栏和Frame边框的像素。我将你的代码完善了下,使用JPanel来实现你想要的效果,贴出代码和效果图。有什么问题可以问我。Email:gengjieoffice@
Code:
packagecn.gengjie.swing.test;
importjava.awt.BasicStroke;
importjava.awt.Color;
importjava.awt.Graphics;
importjava.awt.Graphics2D;
importjavax.swing.JFrame;
importjavax.swing.JPanel;
publicclassRectTestextendsJFrame{
privatestaticfinallongserialVersionUID=1L;
privateJPanelpanel;
publicRectTest(){
this.setTitle("DrawRectTest");
this.panel=newJPanel();
this.add(panel);
this.setSize(450,420);
panel.setBounds(this.getBounds());
this.setVisible(true);
}
publicvoiddrawRect(){
Graphics2Dg=(Graphics2D)panel.getGraphics().create();
g.setColor(Color.RED);
g.setStroke(newBasicStroke(1f));
g.drawRect(0,0,200,250);
g.setColor(Color.GRAY);
g.setStroke(newBasicStroke(2f));
g.drawLine(0,0,200,250);
g.drawString("Heyguy!Thisisjustthe"+"rightoneyouwanna!",0,265);
}
publicvoidpaint(Graphicsg){
super.paint(g);
drawRect();
}
publicstaticvoidmain(Stringargs[]){
newRectTest().drawRect();
}
}