Я создал базовый интерфейс для своей игры в кости. Но мои панели не отображаются в JFrame
. Пожалуйста, помогите мне исправить это. Я новичок в Java Swing.JPanel не отображается на JFrame
package View;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
/**
*
* @author Akila
*/
public class MainUi extends JFrame {
public MainUi(){
initComponents();
}
public void initComponents() {
setTitle("Dice Game");
setVisible(true);
setSize(500, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(true);
Container c = getContentPane();
// *******First Row Components*******
JPanel firstRow = new JPanel();
JLabel pc = new JLabel("PC Score");
JLabel user = new JLabel("User Score");
JLabel pcScore = new JLabel();
JLabel userScore = new JLabel();
// *******Second Row Components*******
JPanel secondRow = new JPanel();
JLabel pcFirstDice = new JLabel();
JLabel pcSecondDice = new JLabel();
JLabel pcThirdDice = new JLabel();
JLabel pcFourthDice = new JLabel();
JLabel pcFifthDice = new JLabel();
JCheckBox checkPcFirstDice = new JCheckBox();
JCheckBox checkPcSecondDice = new JCheckBox();
JCheckBox checkPcThirdDice = new JCheckBox();
JCheckBox checkPcFourthDice = new JCheckBox();
JCheckBox checkPcFifthDice = new JCheckBox();
// *******Third Row Components*******
JPanel thirdRow = new JPanel();
JLabel userFirstDice = new JLabel();
JLabel userSecondDice = new JLabel();
JLabel userThirdDice = new JLabel();
JLabel userFourthDice = new JLabel();
JLabel userFifthDice = new JLabel();
JCheckBox checkUserFirstDice = new JCheckBox();
JCheckBox checkUserSecondDice = new JCheckBox();
JCheckBox checkUserThirdDice = new JCheckBox();
JCheckBox checkUserFourthDice = new JCheckBox();
JCheckBox checkUserFifthDice = new JCheckBox();
// *******Fourth Row Components*******
JPanel fourthRow = new JPanel();
JButton throwDice = new JButton("Throw");
JButton updateScore = new JButton("Update Score");
// *******First Row GridBag Layout*******
firstRow.setSize(400, 100);
firstRow.setLayout(new GridBagLayout());
GridBagConstraints first = new GridBagConstraints();
first.weightx = 1;
first.weighty = 0.25;
// Add First Row Components
first.gridx = 1;
first.gridy = 0;
firstRow.add(pcScore,first);
c.add(firstRow,BorderLayout.NORTH);
}
}
Откуда вы знаете? Вы добавляете пустую 'JPanel', которая содержит пустую' JLabel' для фрейма? – MadProgrammer
Вы также должны называть 'setVisible' ПОСЛЕ того, как вы установили базовый интерфейс, в противном случае вам нужно будет использовать' revalidate' и 'repaint' – MadProgrammer