gpt4 book ai didi

java - 如何翻转 JFrame 及其子项?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:14:43 26 4
gpt4 key购买 nike

这可能看起来很愚蠢(而且可能确实如此),但我如何才能将 JFrame 中的所有组件颠倒过来? JFrame 中的所有内容都必须围绕 JFrame 中间的轴垂直翻转,包括控件上的文本。最好使用 JTextFieldJButton 等。即使翻转也能按预期工作。

我进行了一些搜索,但没有发现任何对这个主题有帮助的内容。

有没有比手动更改布局然后扩展和覆盖所用每个控件的绘制方法更简单的方法?

编辑:我设法让它工作。可以看到my answer below .

最佳答案

您可以轻松翻转 GUI,而无需修改所有组件,只需修改最顶层容器的 paint 方法即可:

class ReversedPanel extends Component {
@Override
public void paint(Graphics g) {
BufferedImage im = new BufferedImage(this.getWidth(), this.getHeight(),
BufferedImage.TYPE_3BYTE_BGR);
// Paint normally but on the image
super.paint(im.getGraphics());

// Reverse the image
AffineTransform tx = AffineTransform.getScaleInstance(1, -1);
tx.translate(0, -im.getHeight());
AffineTransformOp op = new AffineTransformOp(tx,
AffineTransformOp.TYPE_NEAREST_NEIGHBOR);
im = op.filter(im, null);

// Draw the reversed image on the screen
g.drawImage(im, 0, 0, null);
}
}

虽然这种错觉并不完美:当用户将鼠标悬停在按钮的原始位置上时,该按钮将正确显示。

显然,这并没有考虑到要复杂得多的逆转事件。

关于java - 如何翻转 JFrame 及其子项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9392514/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com