在我的应用程序中,我需要在面板上的特定位置绘制 JTextArea
,并且需要能够放大和缩小它。
为了定位它,我可以使用绝对定位,但缩放会带来挑战 - 我可以通过调整 paintComponent
方法轻松缩小它:
@Override
public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
g2.scale(0.5,0.5);
super.paintComponent(g2);
}
但是放大不起作用 - 因为我显式使用 setBounds
设置了组件的边界,所以放大后的组件的一部分最终不会被绘制。怎么解决呢?
编辑:一些解释。
我维护的应用程序是一种图形编辑器,我需要添加一个向工作区域添加注释之类的功能,以便用户可以直接在该工作区域上键入文本。与大多数图形编辑器一样,工作区域可以移动和放大/缩小,因此用户键入文本的文本区域也应该移动和缩放。
最佳答案
如果文本组件在缩放时必须保持可编辑状态,您可以按比例因子(粗略)缩放使用的Font
,如 here 所示。
关于java - 如何放大或缩小 JComponent?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12769830/