Как сохранить текст и строку по центру независимо от изменения размера? - PullRequest
0 голосов
/ 26 октября 2019

У меня есть этот код, но я столкнулся с проблемой, которая заключается в том, что при изменении размера фрейма текст вместе со строкой просто исчезает, а не выравнивается по центру.

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);
            }
        });
    }
}
...