privatepaste.com :: Paste ID 91f2188a70

Secure & Private Pasting

Paste ID 91f2188a70

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
package org.nubcraft.nub.client;

import java.awt.Color;
import java.awt.Container;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.JTextPane;
import javax.swing.ScrollPaneConstants;
import javax.swing.SpringLayout;
import org.newdawn.slick.CanvasGameContainer;
import org.newdawn.slick.Input;
import org.newdawn.slick.SlickException;

/**
 * Initializes the window and the game.
 * 
 * @author Andrew
 */
@SuppressWarnings("serial")
public class NubClient extends JFrame
{
	private final CanvasGameContainer game;
	private final JScrollPane scroller;
	private final JTextPane console;
	private final JTextField input;
	
	private boolean inputFocused = false;
	
	private NubClient() throws SlickException
	{
		super("Nub");
		
		this.setSize(800, 800);
		this.setLocationRelativeTo(null);
		this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		game = new CanvasGameContainer(new NubGame(this));
		game.getContainer().setAlwaysRender(true);
		game.getContainer().setShowFPS(false);
		
		console = new JTextPane();
		console.setEditable(false);
		console.setBackground(Color.WHITE);
		scroller = new JScrollPane(console);
		scroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
		input = new JTextField();
		input.addMouseListener(getInputMouseAdapter());
		
		Container c = this.getContentPane();
		
		c.add(game);
		c.add(scroller);
		c.add(input);
		
		SpringLayout layout = new SpringLayout();
		
		layout.putConstraint(SpringLayout.NORTH, game, 2, SpringLayout.NORTH, c);
		layout.putConstraint(SpringLayout.SOUTH, game, -2, SpringLayout.NORTH, scroller);
		layout.putConstraint(SpringLayout.WEST, game, 2, SpringLayout.WEST, c);
		layout.putConstraint(SpringLayout.EAST, game, -2, SpringLayout.EAST, c);
		
		layout.putConstraint(SpringLayout.NORTH, scroller, -200, SpringLayout.SOUTH, c);
		layout.putConstraint(SpringLayout.SOUTH, scroller, -22, SpringLayout.SOUTH, c);
		layout.putConstraint(SpringLayout.WEST, scroller, 2, SpringLayout.WEST, c);
		layout.putConstraint(SpringLayout.EAST, scroller, -2, SpringLayout.EAST, c);
		
		layout.putConstraint(SpringLayout.NORTH, input, 2, SpringLayout.SOUTH, scroller);
		layout.putConstraint(SpringLayout.SOUTH, input, -2, SpringLayout.SOUTH, c);
		layout.putConstraint(SpringLayout.WEST, input, 2, SpringLayout.WEST, c);
		layout.putConstraint(SpringLayout.EAST, input, -2, SpringLayout.EAST, c);
		
		c.setLayout(layout);
		
		this.setVisible(true);
		game.start();
	}
	
	public void keyPressed(int key, char c)
	{
		switch(key)
		{
			case Input.KEY_ENTER:
			{
				String text = input.getText().trim();
				if(text.length() > 0)
				{
					// handle text here
					console.setText(console.getText() + text + '\n');
				}
				input.setText("");
				break;
			}
			default:
			{
				input.setText(input.getText() + c);
				break;
			}
		}
	}
	
	public void keyReleased(int key, char c)
	{
		
	}
	
	private MouseAdapter getInputMouseAdapter()
	{
		return new MouseAdapter()
		{
			@Override
			public void mouseClicked(MouseEvent e)
			{
				inputFocused = true;
			}
		};
	}
	
	public boolean isInputFocused()
	{
		return inputFocused;
	}
	
	public void setInputFocused(boolean focused)
	{
		inputFocused = focused;
	}
	
	public JTextField getInputField()
	{
		return input;
	}
	
	public JTextPane getConsole()
	{
		return console;
	}
	
	@Override
	public void dispose()
	{
		super.dispose();
		System.exit(0);
	}
	
	public static void main(String[] args) throws SlickException
	{
		new NubClient();
	}
}

package org.nubcraft.nub.client;

import org.newdawn.slick.GameContainer;
import org.newdawn.slick.SlickException;
import org.newdawn.slick.state.StateBasedGame;

/**
 * The game object itself. Initializes various game states.
 * 
 * @author Andrew
 */
public class NubGame extends StateBasedGame
{
	private NubClient client;
	
	protected NubGame(NubClient client)
	{
		super("Nub");
		this.client = client;
	}
	
	@Override
	public void initStatesList(GameContainer container) throws SlickException
	{
		this.addState(new SplashGameState());
	}
	
	@Override
	public void mouseClicked(int button, int x, int y, int clickCount)
	{
		if(client.isInputFocused())
		{
			client.setInputFocused(false);
		}
		super.mouseClicked(button, x, y, clickCount);
	}
	
	@Override
	public void keyPressed(int key, char c)
	{
		if(client.isInputFocused())
		{
			client.keyPressed(key, c);
		}
		else
		{
			super.keyPressed(key, c);
		}
	}
	
	@Override
	public void keyReleased(int key, char c)
	{
		if(client.isInputFocused())
		{
			client.keyReleased(key, c);
		}
		else
		{
			super.keyReleased(key, c);
		}
	}
	
}
package org.nubcraft.nub.client; import java.awt.Color; import java.awt.Container; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextField; import javax.swing.JTextPane; import javax.swing.ScrollPaneConstants; import javax.swing.SpringLayout; import org.newdawn.slick.CanvasGameContainer; import org.newdawn.slick.Input; import org.newdawn.slick.SlickException; /** * Initializes the window and the game. * * @author Andrew */ @SuppressWarnings("serial") public class NubClient extends JFrame { private final CanvasGameContainer game; private final JScrollPane scroller; private final JTextPane console; private final JTextField input; private boolean inputFocused = false; private NubClient() throws SlickException { super("Nub"); this.setSize(800, 800); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(DISPOSE_ON_CLOSE); game = new CanvasGameContainer(new NubGame(this)); game.getContainer().setAlwaysRender(true); game.getContainer().setShowFPS(false); console = new JTextPane(); console.setEditable(false); console.setBackground(Color.WHITE); scroller = new JScrollPane(console); scroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); input = new JTextField(); input.addMouseListener(getInputMouseAdapter()); Container c = this.getContentPane(); c.add(game); c.add(scroller); c.add(input); SpringLayout layout = new SpringLayout(); layout.putConstraint(SpringLayout.NORTH, game, 2, SpringLayout.NORTH, c); layout.putConstraint(SpringLayout.SOUTH, game, -2, SpringLayout.NORTH, scroller); layout.putConstraint(SpringLayout.WEST, game, 2, SpringLayout.WEST, c); layout.putConstraint(SpringLayout.EAST, game, -2, SpringLayout.EAST, c); layout.putConstraint(SpringLayout.NORTH, scroller, -200, SpringLayout.SOUTH, c); layout.putConstraint(SpringLayout.SOUTH, scroller, -22, SpringLayout.SOUTH, c); layout.putConstraint(SpringLayout.WEST, scroller, 2, SpringLayout.WEST, c); layout.putConstraint(SpringLayout.EAST, scroller, -2, SpringLayout.EAST, c); layout.putConstraint(SpringLayout.NORTH, input, 2, SpringLayout.SOUTH, scroller); layout.putConstraint(SpringLayout.SOUTH, input, -2, SpringLayout.SOUTH, c); layout.putConstraint(SpringLayout.WEST, input, 2, SpringLayout.WEST, c); layout.putConstraint(SpringLayout.EAST, input, -2, SpringLayout.EAST, c); c.setLayout(layout); this.setVisible(true); game.start(); } public void keyPressed(int key, char c) { switch(key) { case Input.KEY_ENTER: { String text = input.getText().trim(); if(text.length() > 0) { // handle text here console.setText(console.getText() + text + '\n'); } input.setText(""); break; } default: { input.setText(input.getText() + c); break; } } } public void keyReleased(int key, char c) { } private MouseAdapter getInputMouseAdapter() { return new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { inputFocused = true; } }; } public boolean isInputFocused() { return inputFocused; } public void setInputFocused(boolean focused) { inputFocused = focused; } public JTextField getInputField() { return input; } public JTextPane getConsole() { return console; } @Override public void dispose() { super.dispose(); System.exit(0); } public static void main(String[] args) throws SlickException { new NubClient(); } } package org.nubcraft.nub.client; import org.newdawn.slick.GameContainer; import org.newdawn.slick.SlickException; import org.newdawn.slick.state.StateBasedGame; /** * The game object itself. Initializes various game states. * * @author Andrew */ public class NubGame extends StateBasedGame { private NubClient client; protected NubGame(NubClient client) { super("Nub"); this.client = client; } @Override public void initStatesList(GameContainer container) throws SlickException { this.addState(new SplashGameState()); } @Override public void mouseClicked(int button, int x, int y, int clickCount) { if(client.isInputFocused()) { client.setInputFocused(false); } super.mouseClicked(button, x, y, clickCount); } @Override public void keyPressed(int key, char c) { if(client.isInputFocused()) { client.keyPressed(key, c); } else { super.keyPressed(key, c); } } @Override public void keyReleased(int key, char c) { if(client.isInputFocused()) { client.keyReleased(key, c); } else { super.keyReleased(key, c); } } }