Skip to content
Snippets Groups Projects
Commit fbba0d93 authored by jez04's avatar jez04
Browse files

uprava okna pridani info textu

parent e0ccf71c
Branches
No related merge requests found
package cz.vsb.krouzek; package cz.vsb.krouzek;
import java.awt.BorderLayout; import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout; import java.awt.FlowLayout;
import java.awt.Font; import java.awt.Font;
import java.awt.GridBagConstraints; import java.awt.GridBagConstraints;
import java.awt.GridBagLayout; import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Insets; import java.awt.Insets;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.io.IOException; import java.io.IOException;
...@@ -33,9 +35,11 @@ public class OknoSibenice extends JFrame { ...@@ -33,9 +35,11 @@ public class OknoSibenice extends JFrame {
"sibenice-3.png", "sibenice-4.png", "sibenice-5.png", "sibenice-6.png", "sibenice-7.png", "sibenice-8.png"); "sibenice-3.png", "sibenice-4.png", "sibenice-5.png", "sibenice-6.png", "sibenice-7.png", "sibenice-8.png");
private JPanel letterPanel; private JPanel letterPanel;
private JPanel gamePanel; private JPanel gamePanel;
private JPanel midlePanel;
private JButton startButton; private JButton startButton;
private JButton endButton; private JButton endButton;
private JLabel wordLabel; private JLabel wordLabel;
private JLabel infoLabel;
private JLabel imageLabel; private JLabel imageLabel;
private List<JButton> charButtons = new ArrayList<JButton>(); private List<JButton> charButtons = new ArrayList<JButton>();
private int mistakeCount = 0; private int mistakeCount = 0;
...@@ -53,7 +57,7 @@ public class OknoSibenice extends JFrame { ...@@ -53,7 +57,7 @@ public class OknoSibenice extends JFrame {
initialize(); initialize();
} }
public void initialize() { private void initialize() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
getContentPane().setLayout(new BorderLayout()); getContentPane().setLayout(new BorderLayout());
...@@ -62,13 +66,13 @@ public class OknoSibenice extends JFrame { ...@@ -62,13 +66,13 @@ public class OknoSibenice extends JFrame {
getContentPane().add(getLetterPanel(), BorderLayout.SOUTH); getContentPane().add(getLetterPanel(), BorderLayout.SOUTH);
getContentPane().add(getImageLabel(), BorderLayout.EAST); getContentPane().add(getImageLabel(), BorderLayout.EAST);
getContentPane().add(getGamePanel(), BorderLayout.NORTH); getContentPane().add(getGamePanel(), BorderLayout.NORTH);
getContentPane().add(getWordLabel(), BorderLayout.CENTER); getContentPane().add(getMidlePanel(), BorderLayout.CENTER);
pack(); pack();
setVisible(true); setVisible(true);
} }
public JPanel getLetterPanel() { private JPanel getLetterPanel() {
if (letterPanel == null) { if (letterPanel == null) {
letterPanel = new JPanel(new GridBagLayout()); letterPanel = new JPanel(new GridBagLayout());
int counter = 1; int counter = 1;
...@@ -94,7 +98,7 @@ public class OknoSibenice extends JFrame { ...@@ -94,7 +98,7 @@ public class OknoSibenice extends JFrame {
return letterPanel; return letterPanel;
} }
public JLabel getWordLabel() { private JLabel getWordLabel() {
if (wordLabel == null) { if (wordLabel == null) {
wordLabel = new JLabel(""); wordLabel = new JLabel("");
wordLabel.setHorizontalAlignment(SwingConstants.CENTER); wordLabel.setHorizontalAlignment(SwingConstants.CENTER);
...@@ -105,6 +109,22 @@ public class OknoSibenice extends JFrame { ...@@ -105,6 +109,22 @@ public class OknoSibenice extends JFrame {
return wordLabel; return wordLabel;
} }
private JLabel getInfoLabel() {
if (infoLabel == null) {
infoLabel = new JLabel("");
infoLabel.setHorizontalAlignment(SwingConstants.CENTER);
Font font = new Font("Curier", Font.BOLD , 20);
infoLabel.setFont(font);
infoLabel.setForeground(Color.RED);
setWorldText("");
}
return infoLabel;
}
public void setInfoText(String text) {
infoLabel.setText(text);
}
public void setWorldText(String text) { public void setWorldText(String text) {
Pattern p = Pattern.compile("(.)"); Pattern p = Pattern.compile("(.)");
Matcher matcher = p.matcher(text); Matcher matcher = p.matcher(text);
...@@ -112,7 +132,7 @@ public class OknoSibenice extends JFrame { ...@@ -112,7 +132,7 @@ public class OknoSibenice extends JFrame {
getWordLabel().setText(text); getWordLabel().setText(text);
} }
public JLabel getImageLabel() { private JLabel getImageLabel() {
if (imageLabel == null) { if (imageLabel == null) {
imageLabel = new JLabel(""); imageLabel = new JLabel("");
updateImage(); updateImage();
...@@ -131,6 +151,9 @@ public class OknoSibenice extends JFrame { ...@@ -131,6 +151,9 @@ public class OknoSibenice extends JFrame {
private void updateImage() { private void updateImage() {
try { try {
if(mistakeCount >= imageNames.size()) {
mistakeCount = imageNames.size()-1;
}
BufferedImage image = ImageIO.read(this.getClass().getResourceAsStream("images/"+imageNames.get(mistakeCount))); BufferedImage image = ImageIO.read(this.getClass().getResourceAsStream("images/"+imageNames.get(mistakeCount)));
imageLabel.setIcon(new ImageIcon(image)); imageLabel.setIcon(new ImageIcon(image));
} catch (IOException e) { } catch (IOException e) {
...@@ -138,7 +161,7 @@ public class OknoSibenice extends JFrame { ...@@ -138,7 +161,7 @@ public class OknoSibenice extends JFrame {
} }
} }
public JButton getStartButton() { private JButton getStartButton() {
if (startButton == null) { if (startButton == null) {
startButton = new JButton("Start"); startButton = new JButton("Start");
startButton.addActionListener(e -> { startButton.addActionListener(e -> {
...@@ -149,22 +172,31 @@ public class OknoSibenice extends JFrame { ...@@ -149,22 +172,31 @@ public class OknoSibenice extends JFrame {
return startButton; return startButton;
} }
public JButton getEndButton() { private JButton getEndButton() {
if (endButton == null) { if (endButton == null) {
endButton = new JButton("End"); endButton = new JButton("End");
endButton.addActionListener(e -> { endButton.addActionListener(e -> {
zakazTlacitkaPismenek(); zakazTlacitkaPismenek(true);
konecHry.run(); konecHry.run();
}); });
} }
return endButton; return endButton;
} }
public void zakazTlacitkaPismenek() { public void zakazTlacitkaPismenek(boolean zakazat) {
charButtons.forEach(b -> b.setEnabled(false)); charButtons.forEach(b -> b.setEnabled(!zakazat));
} }
public JPanel getGamePanel() { private JPanel getMidlePanel() {
if (midlePanel == null) {
// Horní panel s tlačítky start a end
midlePanel = new JPanel(new GridLayout(2,1));
midlePanel.add(getWordLabel());
midlePanel.add(getInfoLabel());
}
return midlePanel;
}
private JPanel getGamePanel() {
if (gamePanel == null) { if (gamePanel == null) {
// Horní panel s tlačítky start a end // Horní panel s tlačítky start a end
gamePanel = new JPanel(new FlowLayout()); gamePanel = new JPanel(new FlowLayout());
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment