JPanel
を作成してJFrame
に追加しました。 JPanel
はTitledBorder
を有しているが、私は方法translate()
を使用する場合、例えば、境界を含むtranslate()メソッドが使用されたときにJPanelのTitledBorderが移動します
g2.translate(getWidth()/2, getHeight()/2);
全成分は、翻訳されます。効果は、所望の結果を以下の図に描かれている図1
コードを下に貼り付けます。
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で使用されているレイアウトマネージャに起因する可能性がありますか? GPanelを保持するために枠線付きのJPanelを作成すると、エラーは解決されませんか? – DCON