J'ai travaillé sur ce petit jeu-questionnaire comme un projet pour me tenir occupé, mais je n'arrive pas à comprendre comment le faire paraître bien. de préférence, les boutons seraient en haut et la question serait vers le bas avec une taille de fenêtre définie. Bien que setSize() ou setPreferredSize() ne fonctionnent pas. Donc la fenêtre est très fine et les boutons et la question sont tous en haut.Comment définir l'emplacement et la taille de la disposition de la carte?
package mainPackage;
import javax.swing.JFrame;
public class MainGame{
public static void main(String[] args) {
new WindowComp();
}
}
package mainPackage;
import java.awt.CardLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
@SuppressWarnings("serial")
public class WindowComp extends JComponent implements ActionListener {
JFrame frame = new JFrame("trivia game");
static JButton [] buttons;
static JLabel question;
JPanel panelCont = new JPanel();
JPanel panelStartScreen= new JPanel();
JPanel panelGame = new JPanel();
JButton startGame = new JButton("Start Trivia");
CardLayout cl = new CardLayout();
public WindowComp(){
question = new JLabel("default");
buttons = new JButton[4];
panelCont.setLayout(cl);
buttons[0] = new JButton("Answer 1 : " + "default");
buttons[1] = new JButton("Answer 2 : " + "default");
buttons[2] = new JButton("Answer 3 : " + "default");
buttons[3] = new JButton("Answer 4 : " + "default");
buttons[0].addActionListener(this);
buttons[1].addActionListener(this);
buttons[2].addActionListener(this);
buttons[3].addActionListener(this);
startGame.addActionListener(this);
addAll();
panelCont.add(panelStartScreen, "1");
panelCont.add(panelGame, "2");
frame.add(panelCont);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setSize(300, 300);
frame.pack();
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == buttons[0]){
setQuestion("button 1");
setAnswers("start", "start", "start", "start");
}
if(e.getSource() == buttons[1]){
setQuestion("button 2");
setAnswers("final", "final", "final", "final");
}
if(e.getSource() == buttons[2]){
setQuestion("button 3");
}
if(e.getSource() == buttons[3]){
setQuestion("button 4");
}
if(e.getSource()==startGame){
cl.show(panelCont, "2");
}
}
public void addAll(){
panelGame.add(buttons[0]);
panelGame.add(buttons[1]);
panelGame.add(buttons[2]);
panelGame.add(buttons[3]);
panelGame.add(question);
panelStartScreen.add(startGame);
}
public static void setAnswers(String ans1, String ans2, String ans3,String ans4){
buttons[0].setText("Answer 1 : " + ans1);
buttons[1].setText("Answer 2 : " + ans2);
buttons[2].setText("Answer 3 : " + ans3);
buttons[3].setText("Answer 4 : " + ans4);
}
public static void setQuestion(String q){
question.setText("Question: " + q);
}
}
Je vous recommande de poster un diagramme de ce que vous avez et de ce que vous voulez. Nous vous recommandons également de regarder [Un guide visuel pour les gestionnaires de mise en page] (https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html) si vous n'avez pas – copeg