Skip to content

Instantly share code, notes, and snippets.

@seronis
Created November 3, 2012 18:30
Show Gist options
  • Save seronis/4008203 to your computer and use it in GitHub Desktop.
Save seronis/4008203 to your computer and use it in GitHub Desktop.
understanding Swing
import javax.swing.*;
import javax.swing.border.EtchedBorder;
import java.awt.*;
import java.awt.event.*;
/**
* Created with IntelliJ IDEA.
* User: seronis
* Date: 10/30/12
* Time: 10:04 PM
*/
public class App32Pix extends JFrame
{
Color color = new Color(255,255,255);
JLabel statusbar;
MainPanel panel;
public App32Pix(String s) {
initUI(s);
}
public final void initUI(String s) {
JMenuBar menubar = new JMenuBar();
JMenu menu_file = new JMenu("File");
{
menu_file.setMnemonic(KeyEvent.VK_F);
// ImageIcon icon_exit = new ImageIcon(getClass().getResource("exit.png"));
// JMenuItem eMenuItem = new JMenuItem("Exit", icon_exit);
JMenuItem eMenuItem = new JMenuItem("Exit");
{
eMenuItem.setMnemonic(KeyEvent.VK_X);
eMenuItem.setToolTipText("Exit Application");
eMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
menu_file.add(eMenuItem);
}
menubar.add(menu_file);
}
JMenu menu_color = new JMenu("Color");
{
menu_color.setMnemonic(KeyEvent.VK_C);
JMenuItem eMenuItem;
{
eMenuItem = new JMenuItem("Black");
eMenuItem.addActionListener(new ColorAL(0,0,0));
menu_color.add(eMenuItem);
}
{
eMenuItem = new JMenuItem("White");
eMenuItem.addActionListener(new ColorAL(255,255,255));
menu_color.add(eMenuItem);
}
{
eMenuItem = new JMenuItem("Red");
eMenuItem.addActionListener(new ColorAL(255,0,0));
menu_color.add(eMenuItem);
}
{
eMenuItem = new JMenuItem("Orange");
eMenuItem.addActionListener(new ColorAL(255,127,0));
menu_color.add(eMenuItem);
}
{
eMenuItem = new JMenuItem("Yellow");
eMenuItem.addActionListener(new ColorAL(255,255,0));
menu_color.add(eMenuItem);
}
{
eMenuItem = new JMenuItem("Ochre");
eMenuItem.addActionListener(new ColorAL(127,255,0));
menu_color.add(eMenuItem);
}
{
eMenuItem = new JMenuItem("Green");
eMenuItem.addActionListener(new ColorAL(0,255,0));
menu_color.add(eMenuItem);
}
{
eMenuItem = new JMenuItem("Turqoise");
eMenuItem.addActionListener(new ColorAL(0,255,127));
menu_color.add(eMenuItem);
}
{
eMenuItem = new JMenuItem("Cyan");
eMenuItem.addActionListener(new ColorAL(0,255,255));
menu_color.add(eMenuItem);
}
{
eMenuItem = new JMenuItem("Cobalt");
eMenuItem.addActionListener(new ColorAL(0,127,255));
menu_color.add(eMenuItem);
}
{
eMenuItem = new JMenuItem("Blue");
eMenuItem.addActionListener(new ColorAL(0,0,255));
menu_color.add(eMenuItem);
}
{
eMenuItem = new JMenuItem("Purple");
eMenuItem.addActionListener(new ColorAL(127,0,255));
menu_color.add(eMenuItem);
}
{
eMenuItem = new JMenuItem("Magenta");
eMenuItem.addActionListener(new ColorAL(255,0,255));
menu_color.add(eMenuItem);
}
{
eMenuItem = new JMenuItem("Pink");
eMenuItem.addActionListener(new ColorAL(255,0,127));
menu_color.add(eMenuItem);
}
menubar.add(menu_color);
}
setJMenuBar(menubar);
panel = new MainPanel();
panel.setLayout(null);
panel.setBounds(0,0,400,300);
statusbar = new JLabel(" Statusbar");
statusbar.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.RAISED));
panel.add(statusbar, BorderLayout.SOUTH);
add(panel);
addMouseMotionListener(panel);
setTitle(s);
pack();
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
}
@Override
public Dimension getPreferredSize() {
return new Dimension(400, 300);
}
@Override
public boolean isResizable() {
return true;
}
class MainPanel extends JPanel
implements MouseMotionListener
{
@Override
public void mouseDragged(MouseEvent e) {
//
}
@Override
public void mouseMoved(MouseEvent e) {
statusbar.setText(" X: " + e.getX() + " Y: " + e.getY() + " "
+ "(" + insets.left + "/" + insets.right
+ " " + insets.top + "/" + insets.bottom
+ " " + getWidth() + "/" + getHeight()
+ ")"
);
repaint();
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
insets = getInsets();
Graphics2D g2d = (Graphics2D) g;
g2d.drawLine(0,0,230,230);
}
Insets insets;
}
class ColorAL implements ActionListener {
Color temp;
ColorAL(int r, int g, int b) {
temp = new Color(r,g,b);
}
public void actionPerformed(ActionEvent e) {
color = temp;
panel.setBackground(color);
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
App32Pix window = new App32Pix("32px Editor by Seronis");
window.setVisible(true);
}
});
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment