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;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Insets;
import java.awt.image.BufferedImage;
import java.io.IOException;
......@@ -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");
private JPanel letterPanel;
private JPanel gamePanel;
private JPanel midlePanel;
private JButton startButton;
private JButton endButton;
private JLabel wordLabel;
private JLabel infoLabel;
private JLabel imageLabel;
private List<JButton> charButtons = new ArrayList<JButton>();
private int mistakeCount = 0;
......@@ -53,7 +57,7 @@ public class OknoSibenice extends JFrame {
initialize();
}
public void initialize() {
private void initialize() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
getContentPane().setLayout(new BorderLayout());
......@@ -62,13 +66,13 @@ public class OknoSibenice extends JFrame {
getContentPane().add(getLetterPanel(), BorderLayout.SOUTH);
getContentPane().add(getImageLabel(), BorderLayout.EAST);
getContentPane().add(getGamePanel(), BorderLayout.NORTH);
getContentPane().add(getWordLabel(), BorderLayout.CENTER);
getContentPane().add(getMidlePanel(), BorderLayout.CENTER);
pack();
setVisible(true);
}
public JPanel getLetterPanel() {
private JPanel getLetterPanel() {
if (letterPanel == null) {
letterPanel = new JPanel(new GridBagLayout());
int counter = 1;
......@@ -94,7 +98,7 @@ public class OknoSibenice extends JFrame {
return letterPanel;
}
public JLabel getWordLabel() {
private JLabel getWordLabel() {
if (wordLabel == null) {
wordLabel = new JLabel("");
wordLabel.setHorizontalAlignment(SwingConstants.CENTER);
......@@ -105,6 +109,22 @@ public class OknoSibenice extends JFrame {
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) {
Pattern p = Pattern.compile("(.)");
Matcher matcher = p.matcher(text);
......@@ -112,7 +132,7 @@ public class OknoSibenice extends JFrame {
getWordLabel().setText(text);
}
public JLabel getImageLabel() {
private JLabel getImageLabel() {
if (imageLabel == null) {
imageLabel = new JLabel("");
updateImage();
......@@ -131,6 +151,9 @@ public class OknoSibenice extends JFrame {
private void updateImage() {
try {
if(mistakeCount >= imageNames.size()) {
mistakeCount = imageNames.size()-1;
}
BufferedImage image = ImageIO.read(this.getClass().getResourceAsStream("images/"+imageNames.get(mistakeCount)));
imageLabel.setIcon(new ImageIcon(image));
} catch (IOException e) {
......@@ -138,7 +161,7 @@ public class OknoSibenice extends JFrame {
}
}
public JButton getStartButton() {
private JButton getStartButton() {
if (startButton == null) {
startButton = new JButton("Start");
startButton.addActionListener(e -> {
......@@ -149,22 +172,31 @@ public class OknoSibenice extends JFrame {
return startButton;
}
public JButton getEndButton() {
private JButton getEndButton() {
if (endButton == null) {
endButton = new JButton("End");
endButton.addActionListener(e -> {
zakazTlacitkaPismenek();
zakazTlacitkaPismenek(true);
konecHry.run();
});
}
return endButton;
}
public void zakazTlacitkaPismenek() {
charButtons.forEach(b -> b.setEnabled(false));
public void zakazTlacitkaPismenek(boolean zakazat) {
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) {
// Horní panel s tlačítky start a end
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