Replace autogenerated swing panel with custom title panel

This commit is contained in:
Victor 2013-06-27 22:24:44 +03:00
parent fb03d35727
commit f30db6374c

View File

@ -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
}