我已创建JPanel
并将其添加到JFrame
。 JPanel
具有TitledBorder
,但是当我使用的方法translate()
,例如使用translate()方法时,JPanel中的TitledBorder会移动
g2.translate(getWidth()/2, getHeight()/2);
代码粘贴在下面。
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
class GPanel extends JPanel {
private void doDrawing(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
g2.translate(getWidth()/2, getHeight()/2);
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
doDrawing(g);
}
}
class Main extends JFrame {
public Main() {
}
public static void main(String[] args) {
Main ex = new Main();
ex.setSize(new Dimension(400, 400));
GPanel panel = new GPanel();
panel.setBorder(BorderFactory.createTitledBorder("Title"));
ex.add(panel);
ex.setLocationRelativeTo(null);
ex.setVisible(true);
}
}
这可能是由JFrame上使用的布局管理器造成的吗?如果您创建一个标题为边界的JPanel来保存GPanel,错误是否会持续? – DCON