GUI. 3 hurtige spørgsmål
Jeg er ved at lave et Meyer-spil. Det skal være muligt at spille Meyer online mod en AI.Her er nogle hurtige spørgsmål.
1. Er det problematisk at blande Swing-elementer med AWT-elementer. Hvis ja: Hvilken er så at foretrække?
2. Findes der nogle steder på nettet, hvor kan oprette det som et slags open-source projekt. Så alle kan deltage både med kode og ideer. Savner noget ping-pong med andre, da det gør indlæringsprocessen noget sjovere.
(spørgsmål til koden nederst)
3. Kan jeg lave den øverste del (canvas) større og den midterste del (3 knapper) mindre i dette GridLayout.
Har forsøgt forskellige ting (netbeans drag and drop etc), men synes det er svært at lave en pæn GUI. Synes egentlig den logiske del er nemmere.
package meyer;
//Swing opererer med de her layout managers, som godt kan vaer elidt tricky at forstaa.
// dette er taget fra LayoutFun og modificeret
//Men proev og koer dette programm og leg lidt med at resize vinduet:
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.border.EmptyBorder;
public class meyerLayout extends JFrame {
protected JTextArea textArea;
public meyerLayout() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("Meyer");
setPreferredSize(new Dimension(800, 600));
getContentPane().setLayout(new GridLayout(3, 1));
JPanel g10 = new JPanel();
textArea = new JTextArea(5, 20);
textArea.setEditable(false);
JScrollPane Pane = new JScrollPane(textArea);
add(Pane);
g10.setBorder(new EmptyBorder(5, 5, 5, 5));
g10.setLayout(new BorderLayout());
g10.add(new JLabel("Meyer"), BorderLayout.NORTH);
JPanel g10body = new JPanel();
g10body.setLayout(new BorderLayout());
g10body.add(new JButton("Nash"), BorderLayout.NORTH);
g10body.add(new JButton("Player"), BorderLayout.SOUTH);
g10body.add(Pane, BorderLayout.EAST);
g10body.add(new JButton("Dices showing current score"), BorderLayout.WEST);
g10body.add(new JButton("Canvas with dices"), BorderLayout.CENTER);
g10.add(g10body, BorderLayout.NORTH);
getContentPane().add(g10);
JPanel g11 = new JPanel();
g11.setBorder(new EmptyBorder(5, 5, 5, 5));
g11.setLayout(new BorderLayout());
g11.add(new JLabel("Action"), BorderLayout.NORTH);
JPanel g11body = new JPanel();
g11body.setLayout(new GridLayout());
g11body.add(new JButton("Look"));
g11body.add(new JButton("Roll"));
g11body.add(new JButton("Pass"));
g11.add(g11body, BorderLayout.CENTER);
getContentPane().add(g11);
JPanel g12 = new JPanel();
g12.setBorder(new EmptyBorder(5, 5, 5, 5));
g12.setLayout(new BorderLayout());
g12.add(new JLabel("Announce"), BorderLayout.NORTH);
JPanel g12body = new JPanel();
g12body.setLayout(new GridLayout(3, 7));
g12body.add(new JButton("Gooffy"));
g12body.add(new JButton("41"));
g12body.add(new JButton("42"));
g12body.add(new JButton("43"));
g12body.add(new JButton("51"));
g12body.add(new JButton("52"));
g12body.add(new JButton("53"));
g12body.add(new JButton("54"));
g12body.add(new JButton("61"));
g12body.add(new JButton("62"));
g12body.add(new JButton("63"));
g12body.add(new JButton("64"));
g12body.add(new JButton("65"));
g12body.add(new JButton("Pair 1"));
g12body.add(new JButton("Pair 2"));
g12body.add(new JButton("Pair 3"));
g12body.add(new JButton("Pair 4"));
g12body.add(new JButton("Pair 5"));
g12body.add(new JButton("Pair 6"));
g12body.add(new JButton("Little Meyer"));
g12body.add(new JButton("Meyer"));
g12.add(g12body, BorderLayout.CENTER);
getContentPane().add(g12);
pack();
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JFrame f = new meyerLayout();
f.setVisible(true);
}
});
}
}