Added options to enable and disable autoscrolling.

Update to Java 1.7.
A few other bugfixes.
This commit is contained in:
Steven Lawson 2013-08-02 21:04:47 -04:00
parent 7236d9d867
commit 23e1af4e9e
8 changed files with 179 additions and 117 deletions

View file

@ -4,4 +4,4 @@ BukkitTelnetClient
BukkitTelnetClient is a very, very basic telnet client for use with the BukkitTelnet CraftBukkit plugin.
A recent binary can be found here:
http://s3.madgeekonline.com/BukkitTelnetClient.jar
http://s3.madgeekonline.com/BukkitTelnetClient-v1_3.jar

View file

@ -134,9 +134,7 @@ is divided into following sections:
</or>
</condition>
<condition property="have.tests">
<or>
<available file="${test.src.dir}"/>
</or>
<or/>
</condition>
<condition property="have.sources">
<or>
@ -229,7 +227,6 @@ is divided into following sections:
</target>
<target depends="-pre-init,-init-private,-init-user,-init-project,-do-init" name="-init-check">
<fail unless="src.dir">Must set src.dir</fail>
<fail unless="test.src.dir">Must set test.src.dir</fail>
<fail unless="build.dir">Must set build.dir</fail>
<fail unless="dist.dir">Must set dist.dir</fail>
<fail unless="build.classes.dir">Must set build.classes.dir</fail>
@ -370,6 +367,11 @@ is divided into following sections:
</and>
</condition>
</target>
<target name="-init-test-properties">
<property name="test.binaryincludes" value="&lt;nothing&gt;"/>
<property name="test.binarytestincludes" value=""/>
<property name="test.binaryexcludes" value=""/>
</target>
<target if="${nb.junit.single}" name="-init-macrodef-junit-single" unless="${nb.junit.batch}">
<macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${includes}" name="includes"/>
@ -393,7 +395,7 @@ is divided into following sections:
</sequential>
</macrodef>
</target>
<target if="${nb.junit.batch}" name="-init-macrodef-junit-batch" unless="${nb.junit.single}">
<target depends="-init-test-properties" if="${nb.junit.batch}" name="-init-macrodef-junit-batch" unless="${nb.junit.single}">
<macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
@ -404,8 +406,8 @@ is divided into following sections:
<property name="junit.forkmode" value="perTest"/>
<junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}">
<batchtest todir="${build.test.results.dir}">
<fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
<filename name="@{testincludes}"/>
<fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}">
<filename name="${test.binarytestincludes}"/>
</fileset>
</batchtest>
<syspropertyset>
@ -432,11 +434,7 @@ is divided into following sections:
<condition else="" property="testng.methods.arg" value="@{testincludes}.@{testmethods}">
<isset property="test.method"/>
</condition>
<union id="test.set">
<fileset dir="${test.src.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}">
<filename name="@{testincludes}"/>
</fileset>
</union>
<union id="test.set"/>
<taskdef classname="org.testng.TestNGAntTask" classpath="${run.test.classpath}" name="testng"/>
<testng classfilesetref="test.set" failureProperty="tests.failed" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="BukkitTelnetClient" testname="TestNG tests" workingDir="${work.dir}">
<xmlfileset dir="${build.test.classes.dir}" includes="@{testincludes}"/>
@ -534,7 +532,7 @@ is divided into following sections:
</sequential>
</macrodef>
</target>
<target if="${nb.junit.batch}" name="-init-macrodef-junit-debug-batch">
<target depends="-init-test-properties" if="${nb.junit.batch}" name="-init-macrodef-junit-debug-batch">
<macrodef name="junit-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
@ -545,8 +543,8 @@ is divided into following sections:
<property name="junit.forkmode" value="perTest"/>
<junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}">
<batchtest todir="${build.test.results.dir}">
<fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
<filename name="@{testincludes}"/>
<fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}">
<filename name="${test.binarytestincludes}"/>
</fileset>
</batchtest>
<syspropertyset>
@ -920,7 +918,7 @@ is divided into following sections:
<target if="has.persistence.xml" name="-copy-persistence-xml">
<mkdir dir="${build.classes.dir}/META-INF"/>
<copy todir="${build.classes.dir}/META-INF">
<fileset dir="${meta.inf.dir}" includes="persistence.xml"/>
<fileset dir="${meta.inf.dir}" includes="persistence.xml orm.xml"/>
</copy>
</target>
<target name="-post-compile">
@ -1231,13 +1229,11 @@ is divided into following sections:
<!-- You can override this target in the ../build.xml file. -->
</target>
<target if="do.depend.true" name="-compile-test-depend">
<j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}"/>
<j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir=""/>
</target>
<target depends="init,deps-jar,compile,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend" if="have.tests" name="-do-compile-test">
<j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" processorpath="${javac.test.processorpath}" srcdir="${test.src.dir}"/>
<copy todir="${build.test.classes.dir}">
<fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
</copy>
<j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" processorpath="${javac.test.processorpath}" srcdir=""/>
<copy todir="${build.test.classes.dir}"/>
</target>
<target name="-post-compile-test">
<!-- Empty placeholder for easier customization. -->
@ -1251,10 +1247,8 @@ is divided into following sections:
<target depends="init,deps-jar,compile,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single">
<fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
<j2seproject3:force-recompile destdir="${build.test.classes.dir}"/>
<j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}" processorpath="${javac.test.processorpath}" sourcepath="${test.src.dir}" srcdir="${test.src.dir}"/>
<copy todir="${build.test.classes.dir}">
<fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
</copy>
<j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}" processorpath="${javac.test.processorpath}" sourcepath="" srcdir=""/>
<copy todir="${build.test.classes.dir}"/>
</target>
<target name="-post-compile-test-single">
<!-- Empty placeholder for easier customization. -->

View file

@ -1,8 +1,8 @@
build.xml.data.CRC32=b147f9b6
build.xml.data.CRC32=b53f58a0
build.xml.script.CRC32=71290436
build.xml.stylesheet.CRC32=28e38971@1.50.2.46
build.xml.stylesheet.CRC32=28e38971@1.56.1.46
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
nbproject/build-impl.xml.data.CRC32=b147f9b6
nbproject/build-impl.xml.script.CRC32=6eb617a8
nbproject/build-impl.xml.stylesheet.CRC32=6ddba6b6@1.53.1.46
nbproject/build-impl.xml.data.CRC32=b53f58a0
nbproject/build-impl.xml.script.CRC32=5a1afff7
nbproject/build-impl.xml.stylesheet.CRC32=c6d2a60f@1.56.1.46

View file

@ -35,12 +35,12 @@ javac.classpath=\
${libs.Apache_Commons_Lang.classpath}:\
${libs.Apache_Commons_Net.classpath}
# Space-separated list of extra javac options
javac.compilerargs=
javac.compilerargs=-Xlint:unchecked
javac.deprecation=false
javac.processorpath=\
${javac.classpath}
javac.source=1.6
javac.target=1.6
javac.source=1.7
javac.target=1.7
javac.test.classpath=\
${javac.classpath}:\
${build.classes.dir}
@ -83,4 +83,3 @@ run.test.classpath=\
${build.test.classes.dir}
source.encoding=UTF-8
src.dir=src
test.src.dir=test

View file

@ -7,9 +7,7 @@
<source-roots>
<root id="src.dir"/>
</source-roots>
<test-roots>
<root id="test.src.dir"/>
</test-roots>
<test-roots/>
</data>
</configuration>
</project>

View file

@ -29,6 +29,8 @@ public class BTC_ConnectionManager
btc.getTxt_server().setEnabled(false);
btc.getBtn_disconnect().setEnabled(true);
this.btc.setTitle("BukkitTelnetClient - v1.3 - " + hostname + ":" + port);
System.out.println("Connecting to " + hostname + ":" + port + "...");
this.hostname = hostname;
@ -86,6 +88,8 @@ public class BTC_ConnectionManager
btc.getBtn_send().setEnabled(false);
btc.getTxt_command().setEnabled(false);
this.btc.setTitle("BukkitTelnetClient - v1.3 - Disconnected");
System.out.println("\nDisconnected.");
}

View file

@ -7,6 +7,7 @@
</Properties>
<SyntheticProperties>
<SyntheticProperty name="formSizePolicy" type="int" value="1"/>
<SyntheticProperty name="generateCenter" type="boolean" value="false"/>
</SyntheticProperties>
<AuxValues>
<AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
@ -34,17 +35,18 @@
</Group>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="txt_command" pref="566" max="32767" attributes="0"/>
<Component id="txt_command" pref="483" max="32767" attributes="0"/>
<Component id="txt_server" max="32767" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" max="-2" attributes="0">
<Group type="102" attributes="0">
<Component id="btn_connect" linkSize="4" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="btn_disconnect" linkSize="4" min="-2" max="-2" attributes="0"/>
</Group>
<Component id="btn_send" max="32767" attributes="0"/>
<Component id="btn_connect" linkSize="4" max="32767" attributes="0"/>
<Component id="btn_send" linkSize="4" max="32767" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="btn_disconnect" linkSize="4" min="-2" max="-2" attributes="0"/>
<Component id="chkAutoScroll" linkSize="4" min="-2" max="-2" attributes="0"/>
</Group>
</Group>
</Group>
@ -56,12 +58,13 @@
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Component id="jScrollPane1" pref="334" max="32767" attributes="0"/>
<Component id="jScrollPane1" pref="275" max="32767" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="txt_command" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="jLabel1" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="btn_send" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="chkAutoScroll" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
@ -106,7 +109,7 @@
<Property name="text" type="java.lang.String" value="Connect"/>
</Properties>
<Events>
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="btn_connectMouseClicked"/>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btn_connectActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JLabel" name="jLabel1">
@ -125,7 +128,7 @@
<Property name="enabled" type="boolean" value="false"/>
</Properties>
<Events>
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="btn_disconnectMouseClicked"/>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btn_disconnectActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="btn_send">
@ -134,7 +137,7 @@
<Property name="enabled" type="boolean" value="false"/>
</Properties>
<Events>
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="btn_sendMouseClicked"/>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btn_sendActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JComboBox" name="txt_server">
@ -145,5 +148,14 @@
</Property>
</Properties>
</Component>
<Component class="javax.swing.JCheckBox" name="chkAutoScroll">
<Properties>
<Property name="selected" type="boolean" value="true"/>
<Property name="text" type="java.lang.String" value="AutoScroll"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="chkAutoScrollActionPerformed"/>
</Events>
</Component>
</SubComponents>
</Form>

View file

@ -22,25 +22,36 @@ public class BukkitTelnetClient extends javax.swing.JFrame
public static final String SERVERS_FILE_NAME = "btc_servers.cfg";
private static final Logger logger = Logger.getLogger("BukkitTelnetClient");
private BTC_ConnectionManager connection_mgr;
private final LinkedList<String> server_list = new LinkedList<String>();
private final LinkedList<String> server_list = new LinkedList<>();
private static BukkitTelnetClient btc = null;
public BukkitTelnetClient()
private static void setup()
{
initComponents();
txt_server.getEditor().getEditorComponent().addKeyListener(new KeyAdapter()
btc = new BukkitTelnetClient();
btc.initComponents();
btc.setLocationRelativeTo(null);
btc.txt_server.getEditor().getEditorComponent().addKeyListener(new KeyAdapter()
{
@Override
public void keyTyped(KeyEvent e)
{
if (e.getKeyChar() == KeyEvent.VK_ENTER)
{
saveServersAndTriggerConnect();
btc.saveServersAndTriggerConnect();
}
}
});
redirectSystemStreams();
loadServerList();
connection_mgr = new BTC_ConnectionManager(this);
btc.redirectSystemStreams();
btc.loadServerList();
btc.connection_mgr = new BTC_ConnectionManager(btc);
btc.setVisible(true);
}
private void updateTextPane(final String text)
@ -59,7 +70,10 @@ public class BukkitTelnetClient extends javax.swing.JFrame
{
throw new RuntimeException(e);
}
main_output.setCaretPosition(doc.getLength() - 1);
if (btc.chkAutoScroll.isSelected() && btc.main_output.getSelectedText() == null)
{
btc.main_output.setCaretPosition(doc.getLength() - 1);
}
}
});
}
@ -91,6 +105,7 @@ public class BukkitTelnetClient extends javax.swing.JFrame
System.setErr(new PrintStream(out, true));
}
@SuppressWarnings("unchecked")
private void loadServerList()
{
try
@ -101,15 +116,16 @@ public class BukkitTelnetClient extends javax.swing.JFrame
File file = new File(SERVERS_FILE_NAME);
if (file.exists())
{
BufferedReader in = new BufferedReader(new FileReader(file));
String line;
while ((line = in.readLine()) != null)
try (BufferedReader in = new BufferedReader(new FileReader(file)))
{
line = line.trim();
server_list.add(line);
txt_server.addItem(line);
String line;
while ((line = in.readLine()) != null)
{
line = line.trim();
server_list.add(line);
txt_server.addItem(line);
}
}
in.close();
}
}
catch (Exception ex)
@ -136,15 +152,13 @@ public class BukkitTelnetClient extends javax.swing.JFrame
}
server_list.addFirst(selected_server);
BufferedWriter out = new BufferedWriter(new FileWriter(new File(SERVERS_FILE_NAME)));
for (String server : server_list)
try (BufferedWriter out = new BufferedWriter(new FileWriter(new File(SERVERS_FILE_NAME))))
{
out.write(server + '\n');
for (String server : server_list)
{
out.write(server + '\n');
}
}
out.close();
}
catch (Exception ex)
{
@ -170,6 +184,7 @@ public class BukkitTelnetClient extends javax.swing.JFrame
btn_disconnect = new javax.swing.JButton();
btn_send = new javax.swing.JButton();
txt_server = new javax.swing.JComboBox();
chkAutoScroll = new javax.swing.JCheckBox();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("BukkitTelnetClient");
@ -188,11 +203,11 @@ public class BukkitTelnetClient extends javax.swing.JFrame
});
btn_connect.setText("Connect");
btn_connect.addMouseListener(new java.awt.event.MouseAdapter()
btn_connect.addActionListener(new java.awt.event.ActionListener()
{
public void mouseClicked(java.awt.event.MouseEvent evt)
public void actionPerformed(java.awt.event.ActionEvent evt)
{
btn_connectMouseClicked(evt);
btn_connectActionPerformed(evt);
}
});
@ -202,26 +217,36 @@ public class BukkitTelnetClient extends javax.swing.JFrame
btn_disconnect.setText("Disconnect");
btn_disconnect.setEnabled(false);
btn_disconnect.addMouseListener(new java.awt.event.MouseAdapter()
btn_disconnect.addActionListener(new java.awt.event.ActionListener()
{
public void mouseClicked(java.awt.event.MouseEvent evt)
public void actionPerformed(java.awt.event.ActionEvent evt)
{
btn_disconnectMouseClicked(evt);
btn_disconnectActionPerformed(evt);
}
});
btn_send.setText("Send");
btn_send.setEnabled(false);
btn_send.addMouseListener(new java.awt.event.MouseAdapter()
btn_send.addActionListener(new java.awt.event.ActionListener()
{
public void mouseClicked(java.awt.event.MouseEvent evt)
public void actionPerformed(java.awt.event.ActionEvent evt)
{
btn_sendMouseClicked(evt);
btn_sendActionPerformed(evt);
}
});
txt_server.setEditable(true);
chkAutoScroll.setSelected(true);
chkAutoScroll.setText("AutoScroll");
chkAutoScroll.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent evt)
{
chkAutoScrollActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
@ -236,30 +261,32 @@ public class BukkitTelnetClient extends javax.swing.JFrame
.addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(txt_command, javax.swing.GroupLayout.DEFAULT_SIZE, 566, Short.MAX_VALUE)
.addComponent(txt_command, javax.swing.GroupLayout.DEFAULT_SIZE, 483, Short.MAX_VALUE)
.addComponent(txt_server, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(layout.createSequentialGroup()
.addComponent(btn_connect)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btn_disconnect))
.addComponent(btn_send, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
.addComponent(btn_connect, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btn_send, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(btn_disconnect)
.addComponent(chkAutoScroll))))
.addContainerGap())
);
layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {btn_connect, btn_disconnect});
layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {btn_connect, btn_disconnect, btn_send, chkAutoScroll});
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 334, Short.MAX_VALUE)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 275, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(txt_command, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel1)
.addComponent(btn_send))
.addComponent(btn_send)
.addComponent(chkAutoScroll))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
@ -272,24 +299,6 @@ public class BukkitTelnetClient extends javax.swing.JFrame
pack();
}// </editor-fold>//GEN-END:initComponents
private void btn_connectMouseClicked(java.awt.event.MouseEvent evt)//GEN-FIRST:event_btn_connectMouseClicked
{//GEN-HEADEREND:event_btn_connectMouseClicked
if (!btn_connect.isEnabled())
{
return;
}
saveServersAndTriggerConnect();
}//GEN-LAST:event_btn_connectMouseClicked
private void btn_disconnectMouseClicked(java.awt.event.MouseEvent evt)//GEN-FIRST:event_btn_disconnectMouseClicked
{//GEN-HEADEREND:event_btn_disconnectMouseClicked
if (!btn_disconnect.isEnabled())
{
return;
}
connection_mgr.trigger_disconnect();
}//GEN-LAST:event_btn_disconnectMouseClicked
private void txt_commandKeyPressed(java.awt.event.KeyEvent evt)//GEN-FIRST:event_txt_commandKeyPressed
{//GEN-HEADEREND:event_txt_commandKeyPressed
if (!txt_command.isEnabled())
@ -303,39 +312,84 @@ public class BukkitTelnetClient extends javax.swing.JFrame
}
}//GEN-LAST:event_txt_commandKeyPressed
private void btn_sendMouseClicked(java.awt.event.MouseEvent evt)//GEN-FIRST:event_btn_sendMouseClicked
{//GEN-HEADEREND:event_btn_sendMouseClicked
private void chkAutoScrollActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_chkAutoScrollActionPerformed
{//GEN-HEADEREND:event_chkAutoScrollActionPerformed
updateTextPane("");
}//GEN-LAST:event_chkAutoScrollActionPerformed
private void btn_connectActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btn_connectActionPerformed
{//GEN-HEADEREND:event_btn_connectActionPerformed
if (!btn_connect.isEnabled())
{
return;
}
saveServersAndTriggerConnect();
}//GEN-LAST:event_btn_connectActionPerformed
private void btn_disconnectActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btn_disconnectActionPerformed
{//GEN-HEADEREND:event_btn_disconnectActionPerformed
if (!btn_disconnect.isEnabled())
{
return;
}
connection_mgr.trigger_disconnect();
}//GEN-LAST:event_btn_disconnectActionPerformed
private void btn_sendActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btn_sendActionPerformed
{//GEN-HEADEREND:event_btn_sendActionPerformed
if (!btn_send.isEnabled())
{
return;
}
connection_mgr.send_command(txt_command.getText());
txt_command.selectAll();
}//GEN-LAST:event_btn_sendMouseClicked
}//GEN-LAST:event_btn_sendActionPerformed
public static void main(String args[])
private static void findAndSetLookAndFeel(final String searchStyleName)
{
try
{
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels())
javax.swing.UIManager.LookAndFeelInfo foundStyle = null;
javax.swing.UIManager.LookAndFeelInfo fallbackStyle = null;
for (javax.swing.UIManager.LookAndFeelInfo style : javax.swing.UIManager.getInstalledLookAndFeels())
{
if ("Nimbus".equals(info.getName()))
if (searchStyleName.equalsIgnoreCase(style.getName()))
{
javax.swing.UIManager.setLookAndFeel(info.getClassName());
foundStyle = style;
break;
}
else if ("Nimbus".equalsIgnoreCase(style.getName()))
{
fallbackStyle = style;
}
}
if (foundStyle != null)
{
javax.swing.UIManager.setLookAndFeel(foundStyle.getClassName());
}
else if (fallbackStyle != null)
{
javax.swing.UIManager.setLookAndFeel(fallbackStyle.getClassName());
}
}
catch (Exception ex)
catch (ClassNotFoundException | InstantiationException | IllegalAccessException | javax.swing.UnsupportedLookAndFeelException ex)
{
logger.log(Level.SEVERE, null, ex);
}
}
public static void main(String args[])
{
findAndSetLookAndFeel("Windows");
java.awt.EventQueue.invokeLater(new Runnable()
{
@Override
public void run()
{
new BukkitTelnetClient().setVisible(true);
BukkitTelnetClient.setup();
}
});
}
@ -343,6 +397,7 @@ public class BukkitTelnetClient extends javax.swing.JFrame
private javax.swing.JButton btn_connect;
private javax.swing.JButton btn_disconnect;
private javax.swing.JButton btn_send;
private javax.swing.JCheckBox chkAutoScroll;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JScrollPane jScrollPane1;