Чтобы перевернуть JLabel
в Java Swing, вы можете использовать различные методы. Вот несколько подходов:
-
Использование класса
AffineTransform
:import javax.swing.*; import java.awt.*; import java.awt.geom.AffineTransform; public class FlipLabelExample { public static void main(String[] args) { JFrame frame = new JFrame("Flip Label Example"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JLabel label = new JLabel("Hello, World!"); label.setFont(label.getFont().deriveFont(Font.BOLD, 20)); // Create an AffineTransform with scaling and flipping AffineTransform transform = AffineTransform.getScaleInstance(-1, 1); transform.translate(-label.getWidth(), 0); label.setTransform(transform); frame.getContentPane().add(label); frame.setSize(300, 200); frame.setVisible(true); } }
-
Использование пользовательского подкласса
JLabel
:import javax.swing.*; import java.awt.*; public class FlippableLabel extends JLabel { private boolean flipped = false; public FlippableLabel(String text) { super(text); } @Override protected void paintComponent(Graphics g) { if (flipped) { Graphics2D g2 = (Graphics2D) g; g2.scale(-1, 1); g2.translate(-getWidth(), 0); } super.paintComponent(g); } public void setFlipped(boolean flipped) { this.flipped = flipped; repaint(); } }
Использование:
FlippableLabel label = new FlippableLabel("Hello, World!");
label.setFont(label.getFont().deriveFont(Font.BOLD, 20));
label.setFlipped(true);
Обратите внимание, что приведенные выше примеры демонстрируют, как перевернуть JLabel
по горизонтали в Java Swing. Если вы хотите добиться вертикального переворота или других преобразований, вам необходимо соответствующим образом изменить код.