Я делаю калькулятор с помощью java, для которого должно быть указано положение текстового поля. все, что я знаю, заключается в том, чтобы указать позицию с использованием макета границы, но которую здесь нельзя использовать, поскольку нужно указывать положение других кнопок .. так любезно помогите мнеКак указать координату x и y текстового поля в java?
ответ
Если вы установили менеджер макета null
, вы можете позвонить метод JTextField.setBounds(int x, int y, int width, int height)
, определяющий размер и положение на холсте.
Если ваш менеджер макетов null
, вам нужно будет указать все позиции компонентов в абсолютных координатах. См. Также Component java doc.
Альтернативой является использование более удобного диспетчера компоновки, такого как MiG Layout Manager, или даже сочетание других менеджеров компоновки и JPanel.
EDIT: Вы можете использовать GridLayout и BorderLayout:
JFrame frame = // the frame your adding to, could also be any other component
JTextField textField ? // your textfield
JPanel wrapperPanel = new JPanel(new BorderLayout());
JPanel grid = new JPanel(new GridLayout(4,4));
// Make the number grid
wrapperPanel.add(textField, BorderLayout.PAGE_START);
wrapperPanel.add(grid, BorderLayout.CENTER);
Я хотел бы предложить GroupLayout. Сложнее собрать - вы должны понять, как это работает. Я считаю, что этот макет был разработан для работы с инструментами визуальной компоновки, но я нахожу, что использую его вручную практически на каждой панели, которую я создаю, особенно на панелях пользовательского интерфейса с общими элементами формы. Казалось бы, идеально подходит для применения калькулятора с этим макетом:
+---------------+ | Display | +---+---+---+---+ | 7 | 8 | 9 |/| +---+---+---+---+ | 4 | 5 | 6 | x | +---+---+---+---+ | 1 | 2 | 3 | - | +---+---+---+---+ | 0 | . | = | + | +---+---+---+---+
Вот конструктор:
public CalculatorPanel() { GroupLayout layout = new GroupLayout(this); layout.setAutoCreateGaps(true); layout.setAutoCreateContainerGaps(true); this.setLayout(layout); layout.setVerticalGroup(layout.createSequentialGroup() .addComponent(this.displayTextField) .addGroup(layout.createParallelGroup() .addComponent(this.sevenButton) .addComponent(this.eightButton) .addComponent(this.nineButton) .addComponent(this.divideButton)) .addGroup(layout.createParallelGroup() .addComponent(this.fourButton) .addComponent(this.fiveButton) .addComponent(this.sixButton) .addComponent(this.multiplyButton)) .addGroup(layout.createParallelGroup() .addComponent(this.oneButton) .addComponent(this.twoButton) .addComponent(this.threeButton) .addComponent(this.minusButton)) .addGroup(layout.createParallelGroup() .addComponent(this.zeroButton) .addComponent(this.decimalButton) .addComponent(this.equalsButton) .addComponent(this.plusButton))); layout.setHorizontalGroup(layout.createParallelGroup() .addComponent(this.displayTextField) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup() .addComponent(this.sevenButton) .addComponent(this.fourButton) .addComponent(this.oneButton) .addComponent(this.zeroButton)) .addGroup(layout.createParallelGroup() .addComponent(this.eightButton) .addComponent(this.fiveButton) .addComponent(this.twoButton) .addComponent(this.decimalButton)) .addGroup(layout.createParallelGroup() .addComponent(this.nineButton) .addComponent(this.sixButton) .addComponent(this.threeButton) .addComponent(this.equalsButton)) .addGroup(layout.createParallelGroup() .addComponent(this.divideButton) .addComponent(this.multiplyButton) .addComponent(this.minusButton) .addComponent(this.plusButton)))); }
ИТАК в Swing, вы, как правило, не макет вещи их х, у координаты. Вместо этого вы используете диспетчер компоновки и используете API, предоставляемый LayoutManager, чтобы помещать вещи на экран. LayoutManager работает на более высоком уровне и предоставляет такие функции, как гибкие интерфейсы и реагирует на изменения в размерах для вас. Различные менеджеры компоновки разворачивают вещи по-разному в зависимости от модели макета. BoxLayout против BorderLayout против SpringLayout и т. Д.
Лично, как разработчик Swing в течение длительного времени, я считаю, что лучшим менеджером макетов является TableLayout. Это просто и понятно. Он работает на сетке (подобно GridBagLayout без всех головных болей и gotchas). Он намного проще в использовании и создает очень маленький код.
Это займет всего 15 минут, и вы можете разложить самые сложные пользовательские интерфейсы за считанные минуты.
- 1. Как получить координату x и y mouseClick
- 2. Получить координату x и y в HTML5
- 3. Получить координаты X и Y текстового поля
- 4. Как сохранить координату x/y в клипе?
- 5. Netbeans: получить координату X и Y
- 6. Как найти координату x, y из изображения?
- 7. Как найти (x, y) координату от угла
- 8. Как изменить координату x, y координаты изображения?
- 9. Matlab как показать координату x, y
- 10. Изображение перетаскивается в суставную координату x, y
- 11. Как получить координату X и Y TableCell в TableView JavaFX?
- 12. Как получить координату x и y изображения в холсте Управление
- 13. Рисовать квадрат, считывая X, координату Y от
- 14. Посмотрите форму, которая содержит координату X, Y
- 15. Найти ближайшую координату X, Y, используя R
- 16. Как получить случайную координату x и y внутри радиуса окружности?
- 17. Получить координату X и Y ячейки в таблице
- 18. Как преобразовать четырехъядерные карты Bing в уровень масштабирования, координату x и координату y с помощью PHP?
- 19. Как получить координату касания (X, Y) в UIWebView
- 20. как преобразовать координату (x, y) в уникальное значение
- 21. Как получить координату x, y в текстовом поле
- 22. проверить и удалить дублируемую координату x, y canvas
- 23. Найти новую координату (x ', y'), заданную (x, y), theta и скорость?
- 24. Как получить нижнюю координату y
- 25. ios, учитывая координату X/Y, как получить базовый вид
- 26. Изменение позиции X и Y кнопки/изменение поля кнопки динамически
- 27. Как вычислить (x или y) координату точки по окружности круга?
- 28. Как определить координату [x, y, z] для PalmPosition для руки?
- 29. Как вы можете вычислить координату X/Y для увеличения до
- 30. Как отсортировать некоторую координату по координатам x или y координат?
Свинг, AWT, SWT? –
@ jon- я знаю о swing, и все, кроме меня, не смогли найти определение команды, используя команду javap также ... – tushar
Jon спрашивал, какой из трех вы используете. – Pops