嗨,我是java的初学者,这里有我的程序,但是,当我尝试调整面板大小时,我的文本就消失了?此外,我怎样才能在我的文字下画一条厚厚的绿线,即使在调整大小的时候,它也会留在文本之下,我是非常无知的。
import javax.swing.*;
import java.awt.*;
import java.awt.geom.AffineTransform;
public class Groovy
{
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
JFrame frame= new JFrame("Shearing Word Demo");
frame.setResizable(true);
frame.setSize(new Dimension(500,250));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Toolkit it=Toolkit.getDefaultToolkit();
Dimension d=it.getScreenSize();
int w=frame.getWidth(), h=frame.getHeight();
frame.setLocation(d.width/2-w/2, d.height/2-h/2);
frame.add(new JComponent(){
@Override public void paintComponent(Graphics g){
Graphics2D g2=(Graphics2D) g;
g2.setColor(Color.magenta);
g2.setFont(new Font("Comic Sans MS",Font.BOLD,44));
g2.drawString("Feeling Groovy!", 110,125 );
}
});
frame.setVisible(true);
}
});
}
}发布于 2019-10-25 22:27:02
我如何在我的文本下画一条绿色的线,即使在调整大小的时候,它也会在文本下面。
如果您进行自定义绘图,那么您需要遵循的基本步骤如下:
显示文本的一个更简单的解决方案是使用JLabel。然后,您可以设置标签的边框。有关更多信息,请阅读有关如何使用边界的Swing教程中的部分。
注在使用JComponent进行自定义绘图时,您还负责清除组件的背景。因此,方法中的第一幅画应该是:
g2.setColor( getBackground() );
g2.fillRect(0, 0, getWidth(), getHeight());大多数人使用JPanel进行自定义绘画,然后您只需使用:
super.paintComponent(g);以确保背景被清除。
https://stackoverflow.com/questions/58565554
复制相似问题