Как закрепить рисунок / линию jpanel внутри jframe? - PullRequest
0 голосов
/ 23 сентября 2019

Я хочу, чтобы линия, которую я рисую на jpanel, не менялась, когда я изменяю размер jframe, на котором она находится.Я просто хочу, чтобы он оставался в исходном положении, и если я изменю размер jframe, чтобы он был меньше, то часть строки должна быть скрыта, а не изменяемая линия?

import javax.swing.JFrame;
import java.awt.*;

public class GUIIntroduction {

    public static void main(String[] args){
        DrawPanel panel = new DrawPanel();
        JFrame app = new JFrame();
        panel.setBounds(0,0,60,60);
        app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        app.add(panel);
        app.setSize(600,600);
        app.setVisible(true);
    }
}

import java.awt.Graphics;
import javax.swing.JPanel;
public class DrawPanel extends JPanel{

    public void paintComponent(Graphics g){
        super.paintComponent(g);
        int width = getWidth();
        int height = getHeight();
        g.drawLine(0,height,width,0);
    }

}

Ответы [ 2 ]

0 голосов
/ 30 сентября 2019

Если вы используете getWidth ();и getHeight ();Он всегда вернет вам полную ширину и высоту. Если вы не хотите изменять размер, вам нужно указать целое число, чтобы оно оставалось как обычно.надеюсь, это поможет вам.

      g.drawLine(0,585,585,0);
0 голосов
/ 23 сентября 2019

g.drawLine (0, высота, ширина, 0);

Если вы не хотите, чтобы размер строки изменялся, тогда почему вы используете динамические переменные вметод рисования

Значения ширины и высоты меняются при изменении размера рамки.

Просто используйте:

g.drawLine(0, 100, 100, 0);
...