Невозможно установить местоположение для виджета Java - PullRequest
1 голос
/ 28 марта 2019

Проблема в том, что я не могу расположить кнопку там, где я хочу.Поэтому я написал этот код, чтобы снова установить местоположение:

button.setLocation(new Point(100, 60));

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

public class gui {

    public static void main(String [] args){
        JFrame frame = new JFrame();
        JPanel panel = new JPanel();
        panel.setBackground(Color.ORANGE);
        frame.add(panel);

        JButton button = new JButton("Button");
        button.setPreferredSize(new Dimension(200,25));
        button.setLocation(new Point(100, 60));
        panel.add(button);

        frame.setSize(new Dimension(500,400));
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setTitle("GUI App");
        frame.setResizable(false);
        frame.setVisible(true);


    }
}

Ответы [ 2 ]

0 голосов
/ 28 марта 2019

добавьте ниже к вашему компоненту:

  //JPanel layout
    panel.setLayout(null);
  // postioning
    button.setLocation(100,60);

Как panel.setLayout(null) установите панель содержимого для использования абсолютного макета.Который вам всегда нужно было бы явно устанавливать границы вашего компонента, используя setBounds метод.

Лучше выбрать здесь наиболее подходящий макет, чем при использовании абсолютного макета.
ex: panel.setLayout(new FlowLayout());

0 голосов
/ 28 марта 2019

Вы должны использовать метод setBounds ()! Этот метод требует 4 параметра: координаты x & y, ширина и высота, которые должна иметь ваша кнопка. Также вы должны установить макет в null ... Так что попробуйте это: button.setBounds(100, 60, 100, 50) //just an example frame.setLayout(null)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...