Replace autogenerated swing panel with custom title panel
This commit is contained in:
parent
fb03d35727
commit
f30db6374c
@ -1,195 +1,181 @@
|
|||||||
package jtictactoe;
|
package jtictactoe;
|
||||||
|
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
import java.awt.Font;
|
import java.awt.Dimension;
|
||||||
import java.awt.Frame;
|
import java.awt.Font;
|
||||||
import java.awt.Graphics;
|
import java.awt.Frame;
|
||||||
import java.awt.Point;
|
import java.awt.Graphics;
|
||||||
import java.awt.event.MouseEvent;
|
import java.awt.Point;
|
||||||
import java.awt.image.BufferedImage;
|
import java.awt.event.ActionEvent;
|
||||||
import javax.swing.ImageIcon;
|
import java.awt.event.ActionListener;
|
||||||
import javax.swing.JFrame;
|
import java.awt.event.MouseAdapter;
|
||||||
import javax.swing.JPanel;
|
import java.awt.event.MouseEvent;
|
||||||
|
import java.awt.event.MouseMotionAdapter;
|
||||||
/**
|
import java.awt.image.BufferedImage;
|
||||||
*
|
import javax.swing.ImageIcon;
|
||||||
* @author aNNiMON
|
import javax.swing.JButton;
|
||||||
*/
|
import javax.swing.JFrame;
|
||||||
public class TitlePanel extends JPanel {
|
import javax.swing.JPanel;
|
||||||
|
|
||||||
private boolean moveForm;
|
/**
|
||||||
private BufferedImage exitImage, exitImageBW;
|
*
|
||||||
private BufferedImage minimizeImage, minimizeImageBW;
|
* @author aNNiMON
|
||||||
private BufferedImage background;
|
*/
|
||||||
private Point clickedStart;
|
public class TitlePanel extends JPanel {
|
||||||
private final JFrame mainFrame;
|
|
||||||
private Font messageFont, infoFont;
|
private final BufferedImage exitImage, exitImageBW;
|
||||||
|
private final BufferedImage minimizeImage, minimizeImageBW;
|
||||||
private int winX, winO;
|
private final BufferedImage background;
|
||||||
private String message;
|
private final JFrame mainFrame;
|
||||||
|
private final Font messageFont, infoFont;
|
||||||
|
|
||||||
public TitlePanel(JFrame mainFrame) {
|
private boolean moveForm;
|
||||||
this.mainFrame = mainFrame;
|
private Point clickedStart;
|
||||||
background = Util.getImage("/res/title_bg.jpg");
|
|
||||||
minimizeImage = Util.getImage("/res/minimize_button.png");
|
private int winX, winO;
|
||||||
minimizeImageBW = Util.getImage("/res/minimize_button_bw.png");
|
private String message;
|
||||||
exitImage = Util.getImage("/res/exit_button.png");
|
|
||||||
exitImageBW = Util.getImage("/res/exit_button_bw.png");
|
public TitlePanel(JFrame mainFrame) {
|
||||||
moveForm = false;
|
this.mainFrame = mainFrame;
|
||||||
messageFont = new Font("Arial", Font.BOLD, 60);
|
background = Util.getImage("/res/title_bg.jpg");
|
||||||
infoFont = new Font("Arial", Font.PLAIN, 30);
|
minimizeImage = Util.getImage("/res/minimize_button.png");
|
||||||
winX = winO = 0;
|
minimizeImageBW = Util.getImage("/res/minimize_button_bw.png");
|
||||||
message = "";
|
exitImage = Util.getImage("/res/exit_button.png");
|
||||||
initComponents();
|
exitImageBW = Util.getImage("/res/exit_button_bw.png");
|
||||||
}
|
moveForm = false;
|
||||||
|
messageFont = new Font("Arial", Font.BOLD, 60);
|
||||||
public void updateWin(int winX, int winO) {
|
infoFont = new Font("Arial", Font.PLAIN, 30);
|
||||||
this.winX += winX;
|
winX = winO = 0;
|
||||||
this.winO += winO;
|
message = "";
|
||||||
}
|
initComponents();
|
||||||
|
}
|
||||||
public void setMessage(String message) {
|
|
||||||
this.message = message;
|
public void updateWin(int winX, int winO) {
|
||||||
repaint();
|
this.winX += winX;
|
||||||
}
|
this.winO += winO;
|
||||||
|
}
|
||||||
@Override
|
|
||||||
public void paintComponent(Graphics g) {
|
public void setMessage(String message) {
|
||||||
super.paintComponent(g);
|
this.message = message;
|
||||||
final int width = background.getWidth();
|
repaint();
|
||||||
|
}
|
||||||
g.drawImage(background, 0, 0, null);
|
|
||||||
|
@Override
|
||||||
g.setColor(Color.DARK_GRAY);
|
public void paintComponent(Graphics g) {
|
||||||
g.setFont(infoFont);
|
super.paintComponent(g);
|
||||||
|
final int width = background.getWidth();
|
||||||
g.drawString("X:"+winX, 5, 110);
|
|
||||||
String win = "O:" + winO;
|
g.drawImage(background, 0, 0, null);
|
||||||
g.drawString(win, width - getFontMetrics(infoFont).stringWidth(win) - 5, 110);
|
|
||||||
|
g.setColor(Color.DARK_GRAY);
|
||||||
if (!message.isEmpty()) {
|
g.setFont(infoFont);
|
||||||
g.setFont(messageFont);
|
|
||||||
int x = getFontMetrics(messageFont).stringWidth(message) / 2;
|
g.drawString("X:"+winX, 5, 110);
|
||||||
x = width / 2 - x;
|
String win = "O:" + winO;
|
||||||
g.drawString(message, x, 110);
|
g.drawString(win, width - getFontMetrics(infoFont).stringWidth(win) - 5, 110);
|
||||||
}
|
|
||||||
}
|
if (!message.isEmpty()) {
|
||||||
|
g.setFont(messageFont);
|
||||||
@SuppressWarnings("unchecked")
|
int x = getFontMetrics(messageFont).stringWidth(message) / 2;
|
||||||
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
|
x = width / 2 - x;
|
||||||
private void initComponents() {
|
g.drawString(message, x, 110);
|
||||||
|
}
|
||||||
exitButton = new javax.swing.JButton();
|
}
|
||||||
minimizeButton = new javax.swing.JButton();
|
|
||||||
|
private void initComponents() {
|
||||||
setBackground(new java.awt.Color(51, 51, 51));
|
setBackground(new Color(51, 51, 51));
|
||||||
setPreferredSize(new java.awt.Dimension(480, 150));
|
setPreferredSize(new Dimension(480, 150));
|
||||||
addMouseListener(new java.awt.event.MouseAdapter() {
|
addMouseListener(new MouseAdapter() {
|
||||||
public void mousePressed(java.awt.event.MouseEvent evt) {
|
@Override
|
||||||
formMousePressed(evt);
|
public void mousePressed(MouseEvent evt) {
|
||||||
}
|
formMousePressed(evt);
|
||||||
public void mouseReleased(java.awt.event.MouseEvent evt) {
|
}
|
||||||
formMouseReleased(evt);
|
@Override
|
||||||
}
|
public void mouseReleased(MouseEvent evt) {
|
||||||
});
|
formMouseReleased(evt);
|
||||||
addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
|
}
|
||||||
public void mouseDragged(java.awt.event.MouseEvent evt) {
|
});
|
||||||
formMouseDragged(evt);
|
addMouseMotionListener(new MouseMotionAdapter() {
|
||||||
}
|
@Override
|
||||||
});
|
public void mouseDragged(MouseEvent evt) {
|
||||||
setLayout(null);
|
formMouseDragged(evt);
|
||||||
|
}
|
||||||
exitButton.setIcon(new javax.swing.ImageIcon(exitImageBW));
|
});
|
||||||
exitButton.setBorder(null);
|
setLayout(null);
|
||||||
exitButton.setBorderPainted(false);
|
|
||||||
exitButton.setContentAreaFilled(false);
|
|
||||||
exitButton.addMouseListener(new java.awt.event.MouseAdapter() {
|
final JButton exitButton = new JButton();
|
||||||
public void mouseEntered(java.awt.event.MouseEvent evt) {
|
exitButton.setIcon(new ImageIcon(exitImageBW));
|
||||||
exitButtonMouseEntered(evt);
|
exitButton.setBorder(null);
|
||||||
}
|
exitButton.setBorderPainted(false);
|
||||||
public void mouseExited(java.awt.event.MouseEvent evt) {
|
exitButton.setContentAreaFilled(false);
|
||||||
exitButtonMouseExited(evt);
|
exitButton.addMouseListener(new MouseAdapter() {
|
||||||
}
|
@Override
|
||||||
});
|
public void mouseEntered(MouseEvent evt) {
|
||||||
exitButton.addActionListener(new java.awt.event.ActionListener() {
|
exitButton.setIcon(new ImageIcon(exitImage));
|
||||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
}
|
||||||
exitButtonActionPerformed(evt);
|
@Override
|
||||||
}
|
public void mouseExited(MouseEvent evt) {
|
||||||
});
|
exitButton.setIcon(new ImageIcon(exitImageBW));
|
||||||
add(exitButton);
|
}
|
||||||
exitButton.setBounds(378, 2, 100, 50);
|
});
|
||||||
|
exitButton.addActionListener(new ActionListener() {
|
||||||
minimizeButton.setIcon(new javax.swing.ImageIcon(minimizeImageBW));
|
@Override
|
||||||
minimizeButton.setBorder(null);
|
public void actionPerformed(ActionEvent evt) {
|
||||||
minimizeButton.setBorderPainted(false);
|
exitButtonActionPerformed(evt);
|
||||||
minimizeButton.setContentAreaFilled(false);
|
}
|
||||||
minimizeButton.addMouseListener(new java.awt.event.MouseAdapter() {
|
});
|
||||||
public void mouseEntered(java.awt.event.MouseEvent evt) {
|
add(exitButton);
|
||||||
minimizeButtonMouseEntered(evt);
|
exitButton.setBounds(378, 2, 100, 50);
|
||||||
}
|
|
||||||
public void mouseExited(java.awt.event.MouseEvent evt) {
|
final JButton minimizeButton = new JButton();
|
||||||
minimizeButtonMouseExited(evt);
|
minimizeButton.setIcon(new ImageIcon(minimizeImageBW));
|
||||||
}
|
minimizeButton.setBorder(null);
|
||||||
});
|
minimizeButton.setBorderPainted(false);
|
||||||
minimizeButton.addActionListener(new java.awt.event.ActionListener() {
|
minimizeButton.setContentAreaFilled(false);
|
||||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
minimizeButton.addMouseListener(new MouseAdapter() {
|
||||||
minimizeButtonActionPerformed(evt);
|
@Override
|
||||||
}
|
public void mouseEntered(MouseEvent evt) {
|
||||||
});
|
minimizeButton.setIcon(new ImageIcon(minimizeImage));
|
||||||
add(minimizeButton);
|
}
|
||||||
minimizeButton.setBounds(2, 2, 100, 50);
|
@Override
|
||||||
}// </editor-fold>//GEN-END:initComponents
|
public void mouseExited(MouseEvent evt) {
|
||||||
|
minimizeButton.setIcon(new ImageIcon(minimizeImageBW));
|
||||||
private void exitButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_exitButtonActionPerformed
|
}
|
||||||
mainFrame.setVisible(false);
|
});
|
||||||
mainFrame.dispose();
|
minimizeButton.addActionListener(new ActionListener() {
|
||||||
System.exit(0);
|
@Override
|
||||||
}//GEN-LAST:event_exitButtonActionPerformed
|
public void actionPerformed(ActionEvent evt) {
|
||||||
|
mainFrame.setState(Frame.ICONIFIED);
|
||||||
private void minimizeButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_minimizeButtonActionPerformed
|
}
|
||||||
mainFrame.setState(Frame.ICONIFIED);
|
});
|
||||||
}//GEN-LAST:event_minimizeButtonActionPerformed
|
add(minimizeButton);
|
||||||
|
minimizeButton.setBounds(2, 2, 100, 50);
|
||||||
private void exitButtonMouseEntered(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_exitButtonMouseEntered
|
}
|
||||||
exitButton.setIcon(new ImageIcon(exitImage));
|
|
||||||
}//GEN-LAST:event_exitButtonMouseEntered
|
private void exitButtonActionPerformed(ActionEvent evt) {
|
||||||
|
mainFrame.setVisible(false);
|
||||||
private void exitButtonMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_exitButtonMouseExited
|
mainFrame.dispose();
|
||||||
exitButton.setIcon(new ImageIcon(exitImageBW));
|
System.exit(0);
|
||||||
}//GEN-LAST:event_exitButtonMouseExited
|
}
|
||||||
|
|
||||||
private void minimizeButtonMouseEntered(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_minimizeButtonMouseEntered
|
private void formMousePressed(MouseEvent evt) {
|
||||||
minimizeButton.setIcon(new ImageIcon(minimizeImage));
|
if (evt.getButton() == MouseEvent.BUTTON1) {
|
||||||
}//GEN-LAST:event_minimizeButtonMouseEntered
|
moveForm = true;
|
||||||
|
clickedStart = evt.getPoint();
|
||||||
private void minimizeButtonMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_minimizeButtonMouseExited
|
}
|
||||||
minimizeButton.setIcon(new ImageIcon(minimizeImageBW));
|
}
|
||||||
}//GEN-LAST:event_minimizeButtonMouseExited
|
|
||||||
|
private void formMouseReleased(MouseEvent evt) {
|
||||||
private void formMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_formMousePressed
|
moveForm = false;
|
||||||
if (evt.getButton() == MouseEvent.BUTTON1) {
|
}
|
||||||
moveForm = true;
|
|
||||||
clickedStart = evt.getPoint();
|
private void formMouseDragged(MouseEvent evt) {
|
||||||
}
|
if (moveForm) {
|
||||||
}//GEN-LAST:event_formMousePressed
|
Point moved = evt.getLocationOnScreen();
|
||||||
|
moved.translate(-clickedStart.x, -clickedStart.y);
|
||||||
private void formMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_formMouseReleased
|
mainFrame.setLocation(moved);
|
||||||
moveForm = false;
|
}
|
||||||
}//GEN-LAST:event_formMouseReleased
|
}
|
||||||
|
|
||||||
private void formMouseDragged(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_formMouseDragged
|
}
|
||||||
if (moveForm) {
|
|
||||||
Point moved = evt.getLocationOnScreen();
|
|
||||||
moved.translate(-clickedStart.x, -clickedStart.y);
|
|
||||||
mainFrame.setLocation(moved);
|
|
||||||
}
|
|
||||||
}//GEN-LAST:event_formMouseDragged
|
|
||||||
|
|
||||||
// Variables declaration - do not modify//GEN-BEGIN:variables
|
|
||||||
private javax.swing.JButton exitButton;
|
|
||||||
private javax.swing.JButton minimizeButton;
|
|
||||||
// End of variables declaration//GEN-END:variables
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
Loading…
Reference in New Issue
Block a user