From f30db6374cd4cb983151d3e39cab8b484d2c1783 Mon Sep 17 00:00:00 2001 From: Victor Date: Thu, 27 Jun 2013 22:24:44 +0300 Subject: [PATCH] Replace autogenerated swing panel with custom title panel --- src/jtictactoe/TitlePanel.java | 376 ++++++++++++++++----------------- 1 file changed, 181 insertions(+), 195 deletions(-) diff --git a/src/jtictactoe/TitlePanel.java b/src/jtictactoe/TitlePanel.java index a6c4370..872b1e8 100644 --- a/src/jtictactoe/TitlePanel.java +++ b/src/jtictactoe/TitlePanel.java @@ -1,195 +1,181 @@ -package jtictactoe; - -import java.awt.Color; -import java.awt.Font; -import java.awt.Frame; -import java.awt.Graphics; -import java.awt.Point; -import java.awt.event.MouseEvent; -import java.awt.image.BufferedImage; -import javax.swing.ImageIcon; -import javax.swing.JFrame; -import javax.swing.JPanel; - -/** - * - * @author aNNiMON - */ -public class TitlePanel extends JPanel { - - private boolean moveForm; - private BufferedImage exitImage, exitImageBW; - private BufferedImage minimizeImage, minimizeImageBW; - private BufferedImage background; - private Point clickedStart; - private final JFrame mainFrame; - private Font messageFont, infoFont; - - private int winX, winO; - private String message; - - - public TitlePanel(JFrame mainFrame) { - this.mainFrame = mainFrame; - background = Util.getImage("/res/title_bg.jpg"); - minimizeImage = Util.getImage("/res/minimize_button.png"); - minimizeImageBW = Util.getImage("/res/minimize_button_bw.png"); - exitImage = Util.getImage("/res/exit_button.png"); - exitImageBW = Util.getImage("/res/exit_button_bw.png"); - moveForm = false; - messageFont = new Font("Arial", Font.BOLD, 60); - infoFont = new Font("Arial", Font.PLAIN, 30); - winX = winO = 0; - message = ""; - initComponents(); - } - - public void updateWin(int winX, int winO) { - this.winX += winX; - this.winO += winO; - } - - public void setMessage(String message) { - this.message = message; - repaint(); - } - - @Override - public void paintComponent(Graphics g) { - super.paintComponent(g); - final int width = background.getWidth(); - - g.drawImage(background, 0, 0, null); - - g.setColor(Color.DARK_GRAY); - g.setFont(infoFont); - - g.drawString("X:"+winX, 5, 110); - String win = "O:" + winO; - g.drawString(win, width - getFontMetrics(infoFont).stringWidth(win) - 5, 110); - - if (!message.isEmpty()) { - g.setFont(messageFont); - int x = getFontMetrics(messageFont).stringWidth(message) / 2; - x = width / 2 - x; - g.drawString(message, x, 110); - } - } - - @SuppressWarnings("unchecked") - // //GEN-BEGIN:initComponents - private void initComponents() { - - exitButton = new javax.swing.JButton(); - minimizeButton = new javax.swing.JButton(); - - setBackground(new java.awt.Color(51, 51, 51)); - setPreferredSize(new java.awt.Dimension(480, 150)); - addMouseListener(new java.awt.event.MouseAdapter() { - public void mousePressed(java.awt.event.MouseEvent evt) { - formMousePressed(evt); - } - public void mouseReleased(java.awt.event.MouseEvent evt) { - formMouseReleased(evt); - } - }); - addMouseMotionListener(new java.awt.event.MouseMotionAdapter() { - public void mouseDragged(java.awt.event.MouseEvent evt) { - formMouseDragged(evt); - } - }); - setLayout(null); - - exitButton.setIcon(new javax.swing.ImageIcon(exitImageBW)); - exitButton.setBorder(null); - exitButton.setBorderPainted(false); - exitButton.setContentAreaFilled(false); - exitButton.addMouseListener(new java.awt.event.MouseAdapter() { - public void mouseEntered(java.awt.event.MouseEvent evt) { - exitButtonMouseEntered(evt); - } - public void mouseExited(java.awt.event.MouseEvent evt) { - exitButtonMouseExited(evt); - } - }); - exitButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - exitButtonActionPerformed(evt); - } - }); - add(exitButton); - exitButton.setBounds(378, 2, 100, 50); - - minimizeButton.setIcon(new javax.swing.ImageIcon(minimizeImageBW)); - minimizeButton.setBorder(null); - minimizeButton.setBorderPainted(false); - minimizeButton.setContentAreaFilled(false); - minimizeButton.addMouseListener(new java.awt.event.MouseAdapter() { - public void mouseEntered(java.awt.event.MouseEvent evt) { - minimizeButtonMouseEntered(evt); - } - public void mouseExited(java.awt.event.MouseEvent evt) { - minimizeButtonMouseExited(evt); - } - }); - minimizeButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - minimizeButtonActionPerformed(evt); - } - }); - add(minimizeButton); - minimizeButton.setBounds(2, 2, 100, 50); - }// //GEN-END:initComponents - - private void exitButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_exitButtonActionPerformed - mainFrame.setVisible(false); - mainFrame.dispose(); - System.exit(0); - }//GEN-LAST:event_exitButtonActionPerformed - - private void minimizeButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_minimizeButtonActionPerformed - mainFrame.setState(Frame.ICONIFIED); - }//GEN-LAST:event_minimizeButtonActionPerformed - - private void exitButtonMouseEntered(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_exitButtonMouseEntered - exitButton.setIcon(new ImageIcon(exitImage)); - }//GEN-LAST:event_exitButtonMouseEntered - - private void exitButtonMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_exitButtonMouseExited - exitButton.setIcon(new ImageIcon(exitImageBW)); - }//GEN-LAST:event_exitButtonMouseExited - - private void minimizeButtonMouseEntered(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_minimizeButtonMouseEntered - minimizeButton.setIcon(new ImageIcon(minimizeImage)); - }//GEN-LAST:event_minimizeButtonMouseEntered - - private void minimizeButtonMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_minimizeButtonMouseExited - minimizeButton.setIcon(new ImageIcon(minimizeImageBW)); - }//GEN-LAST:event_minimizeButtonMouseExited - - private void formMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_formMousePressed - if (evt.getButton() == MouseEvent.BUTTON1) { - moveForm = true; - clickedStart = evt.getPoint(); - } - }//GEN-LAST:event_formMousePressed - - private void formMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_formMouseReleased - 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 - - -} +package jtictactoe; + +import java.awt.Color; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.Frame; +import java.awt.Graphics; +import java.awt.Point; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.awt.event.MouseMotionAdapter; +import java.awt.image.BufferedImage; +import javax.swing.ImageIcon; +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JPanel; + +/** + * + * @author aNNiMON + */ +public class TitlePanel extends JPanel { + + private final BufferedImage exitImage, exitImageBW; + private final BufferedImage minimizeImage, minimizeImageBW; + private final BufferedImage background; + private final JFrame mainFrame; + private final Font messageFont, infoFont; + + private boolean moveForm; + private Point clickedStart; + + private int winX, winO; + private String message; + + public TitlePanel(JFrame mainFrame) { + this.mainFrame = mainFrame; + background = Util.getImage("/res/title_bg.jpg"); + minimizeImage = Util.getImage("/res/minimize_button.png"); + minimizeImageBW = Util.getImage("/res/minimize_button_bw.png"); + exitImage = Util.getImage("/res/exit_button.png"); + exitImageBW = Util.getImage("/res/exit_button_bw.png"); + moveForm = false; + messageFont = new Font("Arial", Font.BOLD, 60); + infoFont = new Font("Arial", Font.PLAIN, 30); + winX = winO = 0; + message = ""; + initComponents(); + } + + public void updateWin(int winX, int winO) { + this.winX += winX; + this.winO += winO; + } + + public void setMessage(String message) { + this.message = message; + repaint(); + } + + @Override + public void paintComponent(Graphics g) { + super.paintComponent(g); + final int width = background.getWidth(); + + g.drawImage(background, 0, 0, null); + + g.setColor(Color.DARK_GRAY); + g.setFont(infoFont); + + g.drawString("X:"+winX, 5, 110); + String win = "O:" + winO; + g.drawString(win, width - getFontMetrics(infoFont).stringWidth(win) - 5, 110); + + if (!message.isEmpty()) { + g.setFont(messageFont); + int x = getFontMetrics(messageFont).stringWidth(message) / 2; + x = width / 2 - x; + g.drawString(message, x, 110); + } + } + + private void initComponents() { + setBackground(new Color(51, 51, 51)); + setPreferredSize(new Dimension(480, 150)); + addMouseListener(new MouseAdapter() { + @Override + public void mousePressed(MouseEvent evt) { + formMousePressed(evt); + } + @Override + public void mouseReleased(MouseEvent evt) { + formMouseReleased(evt); + } + }); + addMouseMotionListener(new MouseMotionAdapter() { + @Override + public void mouseDragged(MouseEvent evt) { + formMouseDragged(evt); + } + }); + setLayout(null); + + + final JButton exitButton = new JButton(); + exitButton.setIcon(new ImageIcon(exitImageBW)); + exitButton.setBorder(null); + exitButton.setBorderPainted(false); + exitButton.setContentAreaFilled(false); + exitButton.addMouseListener(new MouseAdapter() { + @Override + public void mouseEntered(MouseEvent evt) { + exitButton.setIcon(new ImageIcon(exitImage)); + } + @Override + public void mouseExited(MouseEvent evt) { + exitButton.setIcon(new ImageIcon(exitImageBW)); + } + }); + exitButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent evt) { + exitButtonActionPerformed(evt); + } + }); + add(exitButton); + exitButton.setBounds(378, 2, 100, 50); + + final JButton minimizeButton = new JButton(); + minimizeButton.setIcon(new ImageIcon(minimizeImageBW)); + minimizeButton.setBorder(null); + minimizeButton.setBorderPainted(false); + minimizeButton.setContentAreaFilled(false); + minimizeButton.addMouseListener(new MouseAdapter() { + @Override + public void mouseEntered(MouseEvent evt) { + minimizeButton.setIcon(new ImageIcon(minimizeImage)); + } + @Override + public void mouseExited(MouseEvent evt) { + minimizeButton.setIcon(new ImageIcon(minimizeImageBW)); + } + }); + minimizeButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent evt) { + mainFrame.setState(Frame.ICONIFIED); + } + }); + add(minimizeButton); + minimizeButton.setBounds(2, 2, 100, 50); + } + + private void exitButtonActionPerformed(ActionEvent evt) { + mainFrame.setVisible(false); + mainFrame.dispose(); + System.exit(0); + } + + private void formMousePressed(MouseEvent evt) { + if (evt.getButton() == MouseEvent.BUTTON1) { + moveForm = true; + clickedStart = evt.getPoint(); + } + } + + private void formMouseReleased(MouseEvent evt) { + moveForm = false; + } + + private void formMouseDragged(MouseEvent evt) { + if (moveForm) { + Point moved = evt.getLocationOnScreen(); + moved.translate(-clickedStart.x, -clickedStart.y); + mainFrame.setLocation(moved); + } + } + +}