Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Stránky: 1
Dobrý den, mám problém při vytváření šachového GUI v javě. Mám hotovou šachovnici a rád bych ji vložil do panelu všech komponent (uprostřed šachovnice, nalevo panel pro vyhozené figury, napravo jména, další tlačítka atd... Pokud toto relizuji pomocí JPanelů s rozdílnou barvou pozadí, dostanu https://ctrlv.cz/vyOg, toto je vše, co chci, uprostřed je šachovnice. Pokud ale za prostřední panel dosadím šachovnici, dostanu toto:https://ctrlv.cz/enKQ).
Kód(je nepěkný, ale dělal jsem ho narychlo a upravím ho až bude tento problém vyřešen).
VV1E.
Ten objekt hraciSachovnice můžete smazat, přes ten se tam dostávají obrázky figur. za Konstanty.VELIKOST_SACHOVNICE můžete dosadit 8
public class GUI extends JFrame(){
private JPanel sachovnice;
private HraciSachovnice hraciSachovnice;
private ArrayList<Integer> moznosti;
private JButton[][] policka; //array of buttons used to play
public GUI() {
hraciSachovnice = new HraciSachovnice();
moznosti = new ArrayList<>();
initComponents();
}
public void sachovnice() {
this.sachovnice = new JPanel();
policka = new JButton[Konstanty.VELIKOST_SACHOVNICE][Konstanty.VELIKOST_SACHOVNICE];
Border border = BorderFactory.createLineBorder(Color.black, 10);
sachovnice.setBorder(border);
sachovnice.setLayout(new GridLayout(8, 8, 0, 0));
for (int y = 0; y < Konstanty.VELIKOST_SACHOVNICE; ++y) {
for (int x = 0; x < Konstanty.VELIKOST_SACHOVNICE; ++x) {
JButton button = new JButton("");
if ((y + x) % 2 == 0) {
button.setBackground(Konstanty.WHITE);
} else {
button.setBackground(Konstanty.DARK);
}
button.setHorizontalTextPosition(JButton.CENTER);
button.setVerticalTextPosition(JButton.CENTER);
button.setFont(Konstanty.KROUZEK_FONT);
policka[y][x] = button;
}
}
for (int y = 0; y < Konstanty.VELIKOST_SACHOVNICE; ++y) {
for (int x = 0; x < Konstanty.VELIKOST_SACHOVNICE; ++x) {
sachovnice.add(policka[y][x]);
if (hraciSachovnice.getSachovnice(y, x) != null) {
Image img = hraciSachovnice.getSachovnice(y, x).getFigura().getImage();
Image newImage = img.getScaledInstance(100, 100, Image.SCALE_SMOOTH);
policka[y][x].setIcon(new ImageIcon(newImage));
}
}
}
}
private void initComponents() {
sachovnice();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setMinimumSize(new java.awt.Dimension(730, 730));
getContentPane().setBackground(Konstanty.BARVA_POZADI);
setLocationRelativeTo(null);
getContentPane().setLayout(null);
JPanel container = new JPanel();
container.setLayout(new GridBagLayout());
GridBagConstraints g = new java.awt.GridBagConstraints();
JPanel panel1 = new JPanel();
g.gridx = 0;
g.gridy = 0;
g.weightx = 1.0;
g.weighty = 1.0;
g.fill = GridBagConstraints.BOTH;
panel1.setBackground(Color.red);
container.add(panel1, g);
g.gridx = 1;
g.gridy = 0;
g.weighty = 8.0;
g.fill = GridBagConstraints.BOTH;
sachovnice.setBackground(Color.black);
container.add(sachovnice, g);
JPanel panel2 = new JPanel();
g.gridx = 2;
g.gridy = 0;
g.weighty = 1.0;
g.weightx = 1.0;
g.fill = GridBagConstraints.BOTH;
panel2.setBackground(Color.WHITE);
container.add(panel2, g);
container.setBounds(0, 0, 600,600);
container.setBackground(Color.BLACK);
getContentPane().add(container);
}
public static void main(String[] args) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new GUI().setVisible(true);
}
});
}
}
Offline
Stránky: 1