Итак, я работаю над проектом для своего класса Java. Целью является создание базовой программы GUI, которая отображает Hello World в виде строки и предоставляет четыре кнопки для управления строкой. Что-то вроде этого: exampleКак добавить GridLayout JButtons под JLabel?
Я даже не дошли до манипуляционной части программы пока я не могу показаться, чтобы получить мое окно отформатирован правильно, независимо от того, что я стараюсь.
Я могу получить свои четыре кнопки для отображения, но все, что я бросил на него, чтобы получить JLabel для отображения Hello World над кнопками, полностью терпит неудачу.
Это кажется очень простым, поэтому я боюсь, что есть что-то очевидное, что мне не хватает. Я проверил сеть в течение недели и нашел много информации о том, как это сделать теоретически, поэтому из того, что я могу понять, это должна быть проблема с моим синтаксисом.
На сегодняшний день я не нашел реализации, которая делает что-либо в соответствии с тем, что мне нужно делать. Это сводит меня с ума, и я собираюсь пройти свой срок в любом случае. Я просто должен ответить! Большое вам спасибо всем, кто может указать мне в правильном направлении!
Вот мой код в его текущей форме. Я чувствовал, что с этим согласен, но при запуске он возвращает исключение из консоли. Опять же, вся помощь очень ценится!
import java.awt.*;
import javax.swing.*;
public class HelloWorld
{
private JButton uppercaseButton;
private JButton lowercaseButton;
private JButton phraseButton;
private JButton resetButton;
private JPanel grid;
public JPanel ButtonGrid()
{
JPanel grid = new JPanel();
grid.setLayout(new GridLayout(2, 2));
uppercaseButton = new JButton("Uppercase");
lowercaseButton = new JButton("Lowercase");
phraseButton = new JButton("New Phrase");
resetButton = new JButton("Reset");
grid.add(uppercaseButton);
grid.add(lowercaseButton);
grid.add(phraseButton);
grid.add(resetButton);
return grid;
}
private static void createAndShowGUI()
{
JFrame frame = new JFrame("THIS IS MY TITLE");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel lbl = new JLabel("HELLO WORLD");
lbl.setPreferredSize(new Dimension(175, 100));
frame.getContentPane().add(lbl, BorderLayout.PAGE_START);
ButtonGrid b = new ButtonGrid();
b.setVisible(true);
b.setSize(300, 200);
frame.getContentPane().add(b, BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args){
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}
Как насчет использования GridLayout, в котором есть 1 столбец и 2 строки, затем добавьте JLabel. После этого добавьте еще один JPanel и установите диспетчер компоновки этого в другой GridLayout из 2x2. Теперь вам просто нужно добавить 4 кнопки в JPanel. – redxef