Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package clientApplet;
- import java.awt.AlphaComposite;
- import java.awt.Color;
- import java.awt.Graphics;
- import java.awt.Graphics2D;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.util.ArrayList;
- import java.util.List;
- import javax.swing.JPanel;
- import javax.swing.JScrollPane;
- import javax.swing.JTextArea;
- import javax.swing.JTextField;
- import javax.swing.SwingUtilities;
- public class Game extends JPanel
- {
- private static final long serialVersionUID = 1L;
- public static int fps = 60;
- KeyboardEvents keyEvents;
- public static JTextField chatBox;
- public static JTextArea chatRecords;
- public Main main;
- public static List<Integer> keys;
- public static List<Integer> keysPrev;
- public Game(Main main) {
- this.main = main;
- keyEvents = main.keyEvents;
- setFocusable(true);
- addKeyListener(keyEvents);
- setLayout(null);
- setBounds(0,0,900,600);
- setBackground(Color.WHITE);
- (new Thread(new Runnable() {
- public void run() {
- runThread();
- }
- })).start();
- }
- public void runThread() {
- try {
- fStart();
- while(true) {
- keys = arr2List(keyEvents.getKeys());
- fUpdate();
- keysPrev = keys;
- repaint();
- Thread.sleep(1000/fps);
- }
- } catch(Exception ex) {
- ex.printStackTrace();
- }
- }
- public void paintComponent(final Graphics g) {
- super.paintComponent(g);
- fDraw(g);
- }
- public static String chatString = "";
- public void fStart() {
- SwingUtilities.invokeLater(new Runnable() {
- public void run() {
- createGUI();
- }
- });
- }
- public void createGUI() {
- //chatBox
- chatBox = new JTextField();
- chatBox.setBounds(6,580,230,20);
- chatBox.setOpaque(false);
- chatBox.setBorder(null);
- chatBox.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- //If chatBox is Empty
- if(chatBox.getText().isEmpty()) {
- //Hide it
- chatBox.setVisible(false);
- }else {
- //Send the message and clear it
- chatBox.setText("");
- }
- }
- });
- add(chatBox);
- //chatRecords
- chatRecords = new JTextArea("HI\nHI");
- chatRecords.setEditable(true);
- chatRecords.setOpaque(false);
- JScrollPane chatScroll = new JScrollPane(chatRecords);
- chatRecords.setBounds(0,360,240,240);
- chatScroll.setOpaque(false);
- chatScroll.setBorder(null);
- add(chatRecords);
- }
- public void fDraw(Graphics g) {
- Graphics2D g2D = (Graphics2D) g;
- //If chatBox is Visible
- if(chatBox.isVisible()) {
- //Chat Records
- g2D.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, .4f));
- g2D.setColor(Color.GRAY);
- g2D.fillRoundRect(0,360,240,240,10,10);
- //Outline of Chat Area
- g2D.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f));
- g2D.setColor(Color.BLACK);
- g2D.drawRoundRect(0,360,240,239,10,10);
- //Chat Box
- g2D.setColor(Color.WHITE);
- g2D.fillRoundRect(1,580,239,25,10,10);
- g2D.setColor(Color.BLACK);
- g2D.drawRoundRect(0,580,240,25,10,10);
- }else
- {
- //Chat Records
- g2D.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, .4f));
- g2D.setColor(Color.GRAY);
- g2D.fillRect(0,480,240,120);
- //Outline of Chat Area
- g2D.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f));
- g2D.setColor(Color.BLACK);
- g2D.drawRect(0,480,240,120);
- }
- }
- public void fUpdate() {
- //If Enter Key is Pressed
- if(keyPressed(10)) {
- //If chatBox is hidden
- if(!chatBox.isVisible()) {
- //Show it and give it focus
- chatBox.setVisible(true);
- chatBox.requestFocus();
- }
- }
- }
- //---KeyEvents---
- public boolean keyPressed(int key) {
- return (keys.contains(key) && !keysPrev.contains(key));
- }
- public boolean keyDown(int key) {
- return keys.contains(key);
- }
- public boolean keyReleased(int key) {
- return (!keys.contains(key) && keysPrev.contains(key));
- }
- //---Misc Functions---
- public List<Integer> arr2List(Integer[] array) {
- List<Integer> objList = new ArrayList<Integer>();
- for (int index = 0; index < array.length; index++)
- {
- objList.add(array[index]);
- }
- return objList;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement