Skip to content
Snippets Groups Projects
Commit 9cab44fd authored by Chang Che Hao's avatar Chang Che Hao
Browse files

Merge branch 'CheHao' into 'master'

Initail commit

See merge request !2
parents bcaf4a5c 79e7fbf9
No related branches found
No related tags found
3 merge requests!8Master,!3Master to hai-branch,!2Initail commit
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
public class PaintClientGUI {
String[] shapes = {"Freehand", "Line", "Circle", "Rectangle", "Oval", "Eraser"};
String[] colors = {"Aqua", "Black", "Blue", "Fuchsia", "Gray", "Green", "Lime", "Maroon", "Navy", "Olive", "Purple", "Red", "Silver", "Teal", "White", "Yellow"};
JFrame frame;
JButton clearBtn, newBtn, openBtn, saveBtn, saveAsBtn, closeBtn;
JComboBox colorOptions;
JComboBox shapeOptions;
DrawingArea drawingArea;
JFileChooser fileChooser= new JFileChooser();
JPanel toolbox = new JPanel();
JPanel fileControl = new JPanel();
ActionListener actionListener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
/// Clear button ///
if (e.getSource() == clearBtn) {
drawingArea.clear();
/// Create new canvas ///
} else if (e.getSource() == newBtn) {
int returnVal = JOptionPane.showConfirmDialog(new JFrame(), "Save your current whiteboard?", "Save or Discard", JOptionPane.YES_NO_CANCEL_OPTION);
if (returnVal == JOptionPane.YES_OPTION) {
drawingArea.saveFile();
drawingArea.clear();
} else if (returnVal == JOptionPane.NO_OPTION) {
drawingArea.clear();
}
// Open file (PNG only) ///
} else if (e.getSource() == openBtn) {
int returnVal = fileChooser.showOpenDialog(frame);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
drawingArea.openFile(file);
}
/// Save under project directory without filename (PNG file with default filename) ///
} else if (e.getSource() == saveBtn) {
drawingArea.saveFile();
/// Save with other filename (PNG only) ///
} else if (e.getSource() == saveAsBtn) {
fileChooser = new JFileChooser();
int returnVal = fileChooser.showSaveDialog(frame);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
drawingArea.saveAsFile(file);
}
/// Close application ///
} else if (e.getSource() == closeBtn) {
System.exit(0);
/// Choose drawing color ///
} else if (e.getSource() == colorOptions) {
String colorChosen = (String) colorOptions.getSelectedItem();
switch (colorChosen){
case "Aqua":
drawingArea.setColorAqua();
break;
case "Black":
drawingArea.setColorBlack();
break;
case "Blue":
drawingArea.setColorBlue();
break;
case "Fuchsia":
drawingArea.setColorFuchsia();
break;
case "Gray":
drawingArea.setColorGray();
break;
case "Green":
drawingArea.setColorGreen();
break;
case "Lime":
drawingArea.setColorLime();
break;
case "Maroon":
drawingArea.setColorMaroon();
break;
case "Navy":
drawingArea.setColorNavy();
break;
case "Olive":
drawingArea.setColorOlive();
break;
case "Purple":
drawingArea.setColorPurple();
break;
case "Red":
drawingArea.setColorRed();
break;
case "Silver":
drawingArea.setColorSilver();
break;
case "Teal":
drawingArea.setColorTeal();
break;
case "White":
drawingArea.setColorWhite();
break;
case "Yellow":
drawingArea.setColorYellow();
break;
}
/// Choose drawing tool ///
} else if (e.getSource() == shapeOptions) {
String shapeChosen = (String) shapeOptions.getSelectedItem();
switch (shapeChosen){
case "Freehand":
drawingArea.setModeFreehand();
break;
case "Line":
drawingArea.setModeLine();
break;
case "Circle":
drawingArea.setModeCircle();
break;
case "Rectangle":
drawingArea.setModeRectangle();
break;
case "Oval":
drawingArea.setModeOval();
break;
case "Eraser":
drawingArea.setModeErase();
break;
}
}
}
};
/// Main program ///
public static void main(String[] args) {
new PaintClientGUI().createAndShowGUI();
}
/// GUI setup ///
private void createAndShowGUI() {
/// Main drawing area ///
drawingArea = new DrawingArea();
/// Set up main frame and container ///
frame = new JFrame("Shared Whiteboard System");
JFrame.setDefaultLookAndFeelDecorated(true);
Container content = frame.getContentPane();
content.setLayout(new BorderLayout());
/// Set up elements ///
shapeOptions = new JComboBox(shapes);
shapeOptions.addActionListener(actionListener);
colorOptions = new JComboBox(colors);
colorOptions.setSelectedItem("Black");
colorOptions.addActionListener(actionListener);
clearBtn = new JButton("Clear");
clearBtn.addActionListener(actionListener);
newBtn = new JButton("New");
newBtn.addActionListener(actionListener);
openBtn = new JButton("Open");
openBtn.addActionListener(actionListener);
saveBtn = new JButton("Save");
saveBtn.addActionListener(actionListener);
saveAsBtn = new JButton("Save As");
saveAsBtn.addActionListener(actionListener);
closeBtn = new JButton("Close");
closeBtn.addActionListener(actionListener);
/// Toolbox panel ///
toolbox.add(colorOptions);
toolbox.add(shapeOptions);
toolbox.add(clearBtn);
/// File control panel ///
fileControl.add(newBtn);
fileControl.add(openBtn);
fileControl.add(saveBtn);
fileControl.add(saveAsBtn);
fileControl.add(closeBtn);
/// Layout ///
content.add(fileControl, BorderLayout.NORTH);
content.add(drawingArea);
content.add(toolbox, BorderLayout.SOUTH);
/// Miscellaneous ///
frame.setSize(800, 600);
frame.setLocationRelativeTo( null );
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
\ No newline at end of file
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
public class PaintServerGUI {
String[] shapes = {"Freehand", "Line", "Circle", "Rectangle", "Oval", "Eraser"};
String[] colors = {"Aqua", "Black", "Blue", "Fuchsia", "Gray", "Green", "Lime", "Maroon", "Navy", "Olive", "Purple", "Red", "Silver", "Teal", "White", "Yellow"};
JFrame frame;
JButton clearBtn, newBtn, openBtn, saveBtn, saveAsBtn, closeBtn;
JComboBox colorOptions;
JComboBox shapeOptions;
DrawingArea drawingArea;
JFileChooser fileChooser= new JFileChooser();
JPanel toolbox = new JPanel();
JPanel fileControl = new JPanel();
ActionListener actionListener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
/// Clear button ///
if (e.getSource() == clearBtn) {
drawingArea.clear();
/// Create new canvas ///
} else if (e.getSource() == newBtn) {
int returnVal = JOptionPane.showConfirmDialog(new JFrame(), "Save your current whiteboard?", "Save or Discard", JOptionPane.YES_NO_CANCEL_OPTION);
if (returnVal == JOptionPane.YES_OPTION) {
drawingArea.saveFile();
drawingArea.clear();
} else if (returnVal == JOptionPane.NO_OPTION) {
drawingArea.clear();
}
// Open file (PNG only) ///
} else if (e.getSource() == openBtn) {
int returnVal = fileChooser.showOpenDialog(frame);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
drawingArea.openFile(file);
}
/// Save under project directory without filename (PNG file with default filename) ///
} else if (e.getSource() == saveBtn) {
drawingArea.saveFile();
/// Save with other filename (PNG only) ///
} else if (e.getSource() == saveAsBtn) {
fileChooser = new JFileChooser();
int returnVal = fileChooser.showSaveDialog(frame);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
drawingArea.saveAsFile(file);
}
/// Close application ///
} else if (e.getSource() == closeBtn) {
System.exit(0);
/// Choose drawing color ///
} else if (e.getSource() == colorOptions) {
String colorChosen = (String) colorOptions.getSelectedItem();
switch (colorChosen){
case "Aqua":
drawingArea.setColorAqua();
break;
case "Black":
drawingArea.setColorBlack();
break;
case "Blue":
drawingArea.setColorBlue();
break;
case "Fuchsia":
drawingArea.setColorFuchsia();
break;
case "Gray":
drawingArea.setColorGray();
break;
case "Green":
drawingArea.setColorGreen();
break;
case "Lime":
drawingArea.setColorLime();
break;
case "Maroon":
drawingArea.setColorMaroon();
break;
case "Navy":
drawingArea.setColorNavy();
break;
case "Olive":
drawingArea.setColorOlive();
break;
case "Purple":
drawingArea.setColorPurple();
break;
case "Red":
drawingArea.setColorRed();
break;
case "Silver":
drawingArea.setColorSilver();
break;
case "Teal":
drawingArea.setColorTeal();
break;
case "White":
drawingArea.setColorWhite();
break;
case "Yellow":
drawingArea.setColorYellow();
break;
}
/// Choose drawing tool ///
} else if (e.getSource() == shapeOptions) {
String shapeChosen = (String) shapeOptions.getSelectedItem();
switch (shapeChosen){
case "Freehand":
drawingArea.setModeFreehand();
break;
case "Line":
drawingArea.setModeLine();
break;
case "Circle":
drawingArea.setModeCircle();
break;
case "Rectangle":
drawingArea.setModeRectangle();
break;
case "Oval":
drawingArea.setModeOval();
break;
case "Eraser":
drawingArea.setModeErase();
break;
}
}
}
};
/// Main program ///
public static void main(String[] args) {
new PaintServerGUI().createAndShowGUI();
}
/// GUI setup ///
private void createAndShowGUI() {
/// Main drawing area ///
drawingArea = new DrawingArea();
/// Set up main frame and container ///
frame = new JFrame("Shared Whiteboard System");
JFrame.setDefaultLookAndFeelDecorated(true);
Container content = frame.getContentPane();
content.setLayout(new BorderLayout());
/// Set up elements ///
shapeOptions = new JComboBox(shapes);
shapeOptions.addActionListener(actionListener);
colorOptions = new JComboBox(colors);
colorOptions.setSelectedItem("Black");
colorOptions.addActionListener(actionListener);
clearBtn = new JButton("Clear");
clearBtn.addActionListener(actionListener);
newBtn = new JButton("New");
newBtn.addActionListener(actionListener);
openBtn = new JButton("Open");
openBtn.addActionListener(actionListener);
saveBtn = new JButton("Save");
saveBtn.addActionListener(actionListener);
saveAsBtn = new JButton("Save As");
saveAsBtn.addActionListener(actionListener);
closeBtn = new JButton("Close");
closeBtn.addActionListener(actionListener);
/// Toolbox panel ///
toolbox.add(colorOptions);
toolbox.add(shapeOptions);
toolbox.add(clearBtn);
/// File control panel ///
fileControl.add(newBtn);
fileControl.add(openBtn);
fileControl.add(saveBtn);
fileControl.add(saveAsBtn);
fileControl.add(closeBtn);
/// Layout ///
content.add(fileControl, BorderLayout.NORTH);
content.add(drawingArea);
content.add(toolbox, BorderLayout.SOUTH);
/// Miscellaneous ///
frame.setSize(800, 600);
frame.setLocationRelativeTo( null );
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment