Я несколько дней задавал вопрос go о том, почему элементы моего GUI не отображаются и ему удалось это исправить! Функциональность программы заключается в том, чтобы запросить у пользователя 3 целых числа в 3 различных текстовых полях, и он объединит целые числа.
Однако я хотел сделать программу немного более приятной и создать методы для различных элементов GUI. К сожалению, когда я запускаю программу, она показывает пустое поле, и даже когда я нахожу курсор мыши над областями, где должны быть элементы, ничего не появляется! Я хотел, чтобы мой createInterface()
метод был нестатичным c, но я не могу заставить его скомпилироваться, пока он не будет c. Это часть проблемы? Вот мой код:
import javax.swing.*;
import java.awt.event.*;
public class ButtonPractice extends javax.swing.JFrame
{
public static void main(String[] args)
{
createInterface();
}
public static void createInterface()
{
JFrame box = new JFrame("Lab 2b");
box.setSize(500,500);
box.setResizable(false);
box.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//call methods to fill
box.setVisible(true);
}
public void createGUI(JFrame frame)
{
//create jpanel
JPanel panel = new JPanel();
panel.setLayout(null);
//adds the panel onto the JFrame
frame.add(panel);
frame.setContentPane(panel);
labels(panel);
createTextFields(panel);
createButtons(panel);
frame.setVisible(true);
}
public void labels(JPanel pane)
{
//create a description
JLabel labelNumOne = new JLabel("First input");
labelNumOne.setBounds(75,40,150,50);
pane.add(labelNumOne);
JLabel labelNumTwo = new JLabel("Second input");
labelNumTwo.setBounds(75,115,150,50);
pane.add(labelNumTwo);
JLabel labelNumThree = new JLabel("Third input");
labelNumThree.setBounds(75,190,150,50);
pane.add(labelNumThree);
}
public void createTextFields(JPanel pane)
{
//creates box to put strings
JTextField inputNumOne = new JTextField("First number");
inputNumOne.setBounds(225,50,200,30);
pane.add(inputNumOne);
JTextField inputNumTwo = new JTextField("Second number");
inputNumTwo.setBounds(225,125,200,30);
pane.add(inputNumTwo);
JTextField inputNumThree = new JTextField("Third number");
inputNumThree.setBounds(225,200,200,30);
pane.add(inputNumThree);
//shows output
JTextField outputString = new JTextField("Output");
outputString.setBounds(75,400,300,30);
pane.add(outputString);
}
public void createButtons(JPanel pane)
{
//create a button
JButton combiner = new JButton("Concactentate");
combiner.setBounds(275,300,125,50);
pane.add(combiner);
combiner.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String boxOne = inputNumOne.getText();
String boxTwo = inputNumTwo.getText();
String boxThree = inputNumThree.getText();
String concact = boxOne+boxTwo+boxThree;
outputString.setText(concact);
}
});
}
}