У меня есть этот код, но я столкнулся с проблемой, которая заключается в том, что при изменении размера фрейма текст вместе со строкой просто исчезает, а не выравнивается по центру.
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){
AffineTransform tx2 = new AffineTransform();
tx2.translate(0, 0);
tx2.shear(0.7, 0);
Graphics2D g2=(Graphics2D) g;
g2.setTransform(tx2);
g2.setColor(Color.MAGENTA);
g2.setFont(new Font("Comic Sans MS",Font.BOLD,44));
g2.drawString("Feeling Groovy!", 30,125 );
g2.setColor(Color.GREEN);
g2.setStroke(new BasicStroke(5));
g2.drawLine(30,128,350,128);
}
});
frame.setVisible(true);
}
});
}
}