JComboBox cann't add KeyListener? Why?
There is a fragment:
JComboBox cBox = new JComboBox();
cBox..setEditable(true);
cBox.addKeyListener(new KeyAdapter(){
@Override
public void keyPressed(KeyEvent e) {
System.out.println(e.getKeyChar());
Whatever I press which key,the console print nothing,why?
And I want to restrict the user's input through this way,any better ideas?
thanks for ur help!
For an editable JComboBox, you need to add the KeyListener to the editor component, something like this:
comboBox.getEditor().getEditorComponent().addKeyListener(...)
And I want to restrict the user's input through this way,any better ideas?Have a look at the Swing tutorial on [url http://java.sun.com/docs/books/tutorial/uiswing/components/generaltext.html#filter]Implementing a Document Filter. Next, get the editor component for the JComboBox (which is a JTextField), and add the Document Filter to it.
Similar Messages
-
I cann't add any extended attribute constraints in CACS
Hi Support --I cann't add any extended attribute constraints in CACS. when I click the button" Add New" , it show a Dialog Box, but no selected item can appeares.
the Agile4P version is 6.1.1 and oracle database is 11g
Regards
Terryafter add distinct in EA, it can be used in CACS
-
when i hooked up my ipod to my computer and opened itunes it wouldnt connect to it. therefore i cant add music. why wont it show up, or sync? i just got the itunes update also so i dont know how to add music to my ipod if it changed.
Hello AnthonyHamilton,
The following article can help get iTunes to recognize your iPhone again.
iOS: Device not recognized in iTunes for Windows
http://support.apple.com/kb/TS1538
Cheers,
Allen -
Lock "Print & Fax" Sys Preference user can still add printers, why?
lock "Print & Fax" Sys Preference user can still add printers, why?
I should add that, I click the lock icon and it shows locked, but the + sign to add a printer is not greyed out and still allows printer drivers to be installed. It then allows the printer driver to be deleted. I have tried quiting System Preferences and rebooting the system and still have the same results.
Pat -
How can I add KeyListener to JTable editor
Hi, I want to know how can I add a KeyListener to a JTable editor?
I want to capture the event when any of the cell in the jtable has a key typed.If your goal is to check the entered value, it's more elegant to do this in overriding
DefaultCellEditor#stopCellEditing and return false when the value is not correct.
Example from a DateEditor:
@Override public boolean stopCellEditing() {
String value = ((JTextField)getComponent()).getText();
if(!value.equals("")) {
try {
formatterE.parse(value);
} catch (ParseException e) {
((JComponent)getComponent()).setBorder(new LineBorder(Color.red));
return false;
return super.stopCellEditing();
} -
Unable to add Keylistener to Label component
Here is the class...all I want to do is make it display an Image in label. I should be able to capture keystrokes.....while pointing any where on the image. it seems to capture the mouse events but key events. Any ideas
<code>
import java.awt.Image;
import java.io.File;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import java.awt.BorderLayout;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class ITest {
public static JLabel label ;
public static JFrame frame;
public static void main(String[] args) {
Image image = null;
File file = new File("c:/temp/sanjay.GIF");
String t= Constants.WEB_ROOT;
System.out.println(t);
try{
image = ImageIO.read(file);
} catch (Exception e){
frame = new JFrame();
label = new JLabel(new ImageIcon(image));
label.addKeyListener(new KeyListener(){
public void keyReleased(KeyEvent e)
String s2 = ""+ e.getKeyChar();
System.out.print(s2 + "keyReleased");
public void keyPressed(KeyEvent e)
String s2 = ""+ e.getKeyChar();
System.out.print(s2 + "keyPressed");
public void keyTyped(KeyEvent e)
String s2 = ""+ e.getKeyChar();
System.out.print(s2 + "keyTyped");
frame.getContentPane().add(label, BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
</code>Nvr mind ...It worked once I set this
label.setFocusable(true);
label.requestFocusInWindow(); -
Give me and easy way to remove ADD ONS why should it be so difficult
We need to easily remove ADD_ON.
your instructions talk about a remove button that DOSE NOT EXIST.
I have downloaded the up dated Firefox 3 times today !!! BUT NO REMOVE BUTTON
when are you going to fix this problem!!!!!!!!I looked at your screen shot, and it looks like all of you add-ons were
disabled. Did you do that? Try to right click on one add-on and see if
you get a menu. If nothing seems to work, there is a last resort. You can
reset Firefox to its factory settings. This will remove all add-ons and any
settings you have made. Bookmarks and history should not be lost.
==================================
The Reset Firefox feature can fix many issues by restoring Firefox to its factory default state while saving your essential information. <br>
'''Note''': ''This will cause you to lose any Extensions and some Preferences.''
*Open websites will not be saved in Firefox versions lower than 25.
To Reset Firefox do the following:
#Go to Firefox > Help > Troubleshooting Information.
#Click the "Reset Firefox" button.
#Firefox will close and reset. After Firefox is done, it will show a window with the information that is imported. Click Finish.
#Firefox will open with all factory defaults applied.
Further information can be found in the [[Reset Firefox – easily fix most problems]] article.
Did this fix your problems? Please report back to us!
Thank you. -
Urgent--"JoptionPane"-to add keylistener
I have a problem regarding the key listeners added to joptionpane.
whether we can add key listeners to joptionpane.and if so how???
second poblem:
when joptionpane with confirmdoaolig box with 3 options is shown then it has yes and no option with their Y and N initials unserlined , i
wamt that it shud not be shown underlined plus whenever i press alt key it shud show underlined initials.
thanks in advanceextends the defaultcellrenderer make it return a Jbutton as the component to draw.
class OverCellRendererClass extends DefaultTableCellRenderer {
public Component getTableCellRendererComponent(JTable table,
Object value,
boolean isSelected,
boolean hasFocus,
int row,
int column) {
//put your stuff here to make or get a button
return myButton;
Use something like this to set the renderer for the column :
tb.getColumnModel().getColumn(4).setCellRenderer(new YourCellRendererClass()); -
have set up itunes match on mac. this works fine linked to apple tv. my man wants to 'add computer' from itunes held on a pc. he is unable to do this. link to the apple store takes a while, can sign in using apple id but....accessto itunes match is very slow and only brings up a limited page with no graphics. there is an option for 'add computer' but it does nothing. missing something?
To add another computer, that computer must be signed into your iTunes Store account.
-
After unity 8 update problem cann't add on user
Hi
do you any idea add on user on unity 8 ?
when add on new user come out error message : "LBL_HOMESERVER_LOOKUP_FILED02"
So do know how can solve out this issue ?????
thanksHello,
I found a defect and perhaps it's related to your issue: CSCti20852. You can go to Cisco.com and search for defect and use Bug Toolkit to view more
info on issue.
Seems that DBWaker version 4.0.62 and CUPID 1.0.23 conflict with each other being installed on same system.
To fix the issue you need to upgrade DBWalker to 4.0.63 if you have not already done so.
But if not go to the following site:
http://ciscounitytools.com/Applications/Unity/dbWalker/dbWalker.html
An updated version of CUPID does not appear to be release yet.
If issue still exist you might post the exact error you are seeing.
Thanks,
Scott -
How to add KeyListener on JTable
Hello everybody,
I have a Jtable and i want to use the up and down key on the keyboard. I don't find the method how allow me to do that. I try "addKeyListener" but no result.
Please help me !!!!
Thanks .
PS : excuse for my bad english.i try to be clear :o)))
I have a text on a JtextPane and i have a table (include in a JSrcollPane)
when i clicked in the text, il select the good entry in the table, when a do the same (by clicking addmouselistener) on the Jtable i hightlight un part of text. OK !!! for this its good !!!
The second thing i must doing :
when i use the up and down key on the Jtextpane its good i have the comportment describe before. But when i use the up and key doxn in my table its doesnt work !!!
the focus is also in my jtextpane, this event is not catch by my Jtable but by JtextPane -
Why is Firefox intruding and sending updates when auto updates are turned off? This constant updating wreaks havoc with add-ons
Why is Firefox violating my computer?I left "automatic updates" for Firefox UNCHECKED and left download when updates are found UNCHECKED. " Ask me wha I want to do" is CHECKED.
In English, that means don't automatically update and if updates are found ASK.
It does NOT mean ignore all the instructions and download! -
Hello,
Can ynay one tell me how exactly this JComboBox behaves regarding regarding the mouse listeners and key listeners.
I have a JComboBox element the ActionListener for this works very well but I made the JComboBox editable and the I add KeyListener to the JComboBox element to implement a feature to activate a button when we type something in the JComboBox
Now my second question is can't I implement mouseListeners to this JComboBox field.
If any one knows can you please help me by posting a small example on how to implemet KeyListeners and MouseListeners on JComboBox
Best Regards,
SreedharHello..
That really works you have done a great help to me. But I have one doubt it works well for default MouseListeners, but when I introduceda MouseAdapater and try to implement that it does'nt works. Do you know why this is so.
Any now I'm using a default MouseListener but for a userdefined MouseAdapter it is not working.
Thank you once again.
Best Regards,
Sreedhar -
Networking - Why Doesn't This Work?
Hey all
Just wondering if any of you have any ideas why this code isn't working properly - for the Client to connect the Server has to be restarted. Is there a solution to this problem?
The Client Class:
import java.awt.Container;
import java.awt.Color;
import java.awt.Font;
import java.awt.FlowLayout;
import java.awt.Dimension;
import java.awt.GridBagLayout;
import java.awt.GridBagConstraints;
import java.awt.Insets;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JColorChooser;
import javax.swing.ButtonGroup;
import javax.swing.Box;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.BoxLayout;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.JComboBox;
import javax.swing.JOptionPane;
import javax.swing.JRadioButton;
import java.io.*;
import java.net.*;
* This is the user class and holds all the details for the GUI. The gui contains listeners
* ans it sends messages to the server and also recieves messages from the server. This class
* works primarily with the ClienttoServer class.
* Help was used to create this class, mainly from the Java GUI devlopment book by Varan Piroumian
* as this hsowed the basic components needed to create a GUI and which imports were the most essential
* in order to have an interactive interface for the chat application.
public class Client extends JFrame implements ActionListener
private static final long serialVersionUID = 1L;
private JTextArea conversationDisplay;
private JTextField createMsg, hostfield, portnumfd, usernamey;
private JScrollPane scrolly;
private JLabel hosty, portnum, convoLabel, msgLabel, netwrk, netwrk2, talk2urself, fonts, nickName, ustatus, econs;
private JPanel lpanel, rpanel, lpanel1, lpanel2, lpanel3, lpanel4, lpanel5, rpanel1, rpanel2, rpanel3, rpanel4, rpanel5;
private JButton sendMsgButton, colourButton, exitButton, connect, dropconnection;
private JRadioButton talk2urselfOn, talk2urselfOff;
private JComboBox fontcombiBox, statusbox, emoticons;
private JColorChooser colourchoo;
private Container theWholeApp;
private String username;
private PrintWriter writer;
private Socket socky;
//for the self comm button
private boolean talktoself = true;
//used as when a msg is sent to the server the name & msg are sent in 2 parts (\n function) i.e
//2 different messages. So in self comm mode then the next message needs to be ignored
private boolean ignoreyourself = false;
* The Constructor or the class
public Client()
makeGUI();
System.out.println("Loading the GUI....");
* Creates the GUI for the user to see/use
public void makeGUI()
//create the whole window
JFrame.setDefaultLookAndFeelDecorated(true);
//set the title of the whole app
this.setTitle("Welcome To Elliot's Chat Network...");
//set the app window size
this.setSize(600, 575);
//create the outer container for the app
theWholeApp = getContentPane();
//make new gridbag layout
GridBagLayout layoutgridbag = new GridBagLayout();
//create some restraints for this...
GridBagConstraints gbconstraints = new GridBagConstraints();
//make the app use this gridbag layout
theWholeApp.setLayout(layoutgridbag);
//this is where elements are added into the application's window
//creates and adds the convo label
convoLabel = new JLabel("Your Conversation:");
gbconstraints = new GridBagConstraints();
gbconstraints.gridx = 0;
gbconstraints.gridy = 0;
gbconstraints.gridheight = 1;
gbconstraints.gridwidth = 1;
gbconstraints.weightx = 5;
gbconstraints.weighty = 1;
gbconstraints.anchor = GridBagConstraints.WEST;
layoutgridbag.setConstraints(convoLabel, gbconstraints);
theWholeApp.add(convoLabel);
//create & add the exit button
exitButton = new JButton("Exit");
gbconstraints = new GridBagConstraints();
gbconstraints.gridx = 10;
gbconstraints.gridy = 0;
gbconstraints.gridheight = 1;
gbconstraints.gridwidth = 1;
gbconstraints.weightx = 1;
gbconstraints.weighty = 1;
gbconstraints.anchor = GridBagConstraints.EAST;
layoutgridbag.setConstraints(exitButton, gbconstraints);
theWholeApp.add(exitButton);
exitButton.addActionListener(this);
//create & add the txt area
conversationDisplay = new JTextArea(15,15);
scrolly = new JScrollPane(conversationDisplay);
gbconstraints = new GridBagConstraints();
gbconstraints.gridx = 0;
gbconstraints.gridy = 1;
gbconstraints.gridheight = 4;
gbconstraints.gridwidth = 11;
gbconstraints.weightx = 10;
gbconstraints.weighty = 20;
gbconstraints.anchor = GridBagConstraints.WEST;
gbconstraints.fill = GridBagConstraints.BOTH;
gbconstraints.insets = new Insets(10, 10, 15, 15);
//so the clients cant write in the display area...
conversationDisplay.setEditable(false);
layoutgridbag.setConstraints(scrolly, gbconstraints);
theWholeApp.add(scrolly);
//create & add the nick name area
nickName = new JLabel("Your nick \nthis is required");
gbconstraints = new GridBagConstraints();
gbconstraints.gridx = 0;
gbconstraints.gridy = 5;
gbconstraints.gridheight = 1;
gbconstraints.gridwidth = 1;
gbconstraints.weightx = 5;
gbconstraints.weighty = 1.5;
gbconstraints.anchor = GridBagConstraints.WEST;
gbconstraints.fill = GridBagConstraints.HORIZONTAL;
gbconstraints.insets = new Insets(3, 10, 0, 0);
layoutgridbag.setConstraints(nickName, gbconstraints);
theWholeApp.add(nickName);
//create & add the nick name box
usernamey = new JTextField(10);
gbconstraints = new GridBagConstraints();
gbconstraints.gridx = 0;
gbconstraints.gridy = 6;
gbconstraints.gridheight = 1;
gbconstraints.gridwidth = 1;
gbconstraints.weightx = 1;
gbconstraints.weighty = 1;
gbconstraints.anchor = GridBagConstraints.WEST;
gbconstraints.fill = GridBagConstraints.HORIZONTAL;
gbconstraints.insets = new Insets(0, 10, 0, 0);
layoutgridbag.setConstraints(usernamey, gbconstraints);
theWholeApp.add(usernamey);
//create & add the your message label
msgLabel = new JLabel("Your Message:");
gbconstraints = new GridBagConstraints();
gbconstraints.gridx = 0;
gbconstraints.gridy = 7;
gbconstraints.gridheight = 1;
gbconstraints.gridwidth = 1;
gbconstraints.weightx = 1;
gbconstraints.weighty = 1;
gbconstraints.anchor = GridBagConstraints.WEST;
gbconstraints.fill = GridBagConstraints.BOTH;
gbconstraints.insets = new Insets(0, 10, 0, 0);
layoutgridbag.setConstraints(msgLabel, gbconstraints);
theWholeApp.add(msgLabel);
//create & add the create message box
createMsg = new JTextField(15);
gbconstraints = new GridBagConstraints();
gbconstraints.gridx = 0;
gbconstraints.gridy = 8;
gbconstraints.gridheight = 2;
gbconstraints.gridwidth = 10;
gbconstraints.weightx = 10;
gbconstraints.weighty = 1;
gbconstraints.anchor = GridBagConstraints.WEST;
gbconstraints.fill = GridBagConstraints.HORIZONTAL;
gbconstraints.insets = new Insets(3, 10, 0, 0);
layoutgridbag.setConstraints(createMsg, gbconstraints);
theWholeApp.add(createMsg);
createMsg.addActionListener(this);
createMsg.setActionCommand("Press Enter!");
//create & add the send message button
sendMsgButton = new JButton("Send Msg");
gbconstraints = new GridBagConstraints();
gbconstraints.gridx = 10;
gbconstraints.gridy = 8;
gbconstraints.gridheight = 1;
gbconstraints.gridwidth = 1;
gbconstraints.weightx = 1;
gbconstraints.weighty = 1;
gbconstraints.anchor = GridBagConstraints.EAST;
layoutgridbag.setConstraints(sendMsgButton, gbconstraints);
theWholeApp.add(sendMsgButton);
sendMsgButton.addActionListener(this);
//create & add the left panel
lpanel = new JPanel();
gbconstraints = new GridBagConstraints();
gbconstraints.gridx = 0;
gbconstraints.gridy = 10;
gbconstraints.gridheight = 3;
gbconstraints.gridwidth = 4;
gbconstraints.weightx = 5;
gbconstraints.weighty = 0;
gbconstraints.anchor = GridBagConstraints.WEST;
gbconstraints.insets = new Insets(0, 10, 0, 0);
layoutgridbag.setConstraints(lpanel, gbconstraints);
theWholeApp.add(lpanel);
//create & add the right panel
rpanel = new JPanel();
gbconstraints = new GridBagConstraints();
gbconstraints.gridx = 5;
gbconstraints.gridy = 10;
gbconstraints.gridheight = 3;
gbconstraints.gridwidth = 4;
gbconstraints.weightx = 5;
gbconstraints.weighty = 0;
gbconstraints.anchor = GridBagConstraints.EAST;
layoutgridbag.setConstraints(rpanel, gbconstraints);
theWholeApp.add(rpanel);
//add to the left JPanel - set the layout for this
lpanel.setLayout(new BoxLayout(lpanel, BoxLayout.Y_AXIS));
//add panels into this left panel...
lpanel1 = new JPanel();
lpanel2 = new JPanel();
lpanel3 = new JPanel();
lpanel4 = new JPanel();
lpanel5 = new JPanel();
lpanel.add(lpanel1);
lpanel.add(lpanel2);
lpanel.add(lpanel3);
lpanel.add(lpanel4);
lpanel.add(lpanel5);
//set FlowLyout for each of these panels
lpanel1.setLayout(new FlowLayout(FlowLayout.LEFT));
lpanel2.setLayout(new FlowLayout(FlowLayout.LEFT));
lpanel3.setLayout(new FlowLayout(FlowLayout.LEFT));
lpanel4.setLayout(new FlowLayout(FlowLayout.LEFT));
lpanel5.setLayout(new FlowLayout(FlowLayout.LEFT));
//add in the network items...
netwrk = new JLabel("Network Details:");
lpanel1.add(netwrk);
//create and add instructions for this
netwrk2 = new JLabel("Please enter the details for \nthe person you want to chat to...");
lpanel2.add(netwrk2);
//create/add the ip addy label
hosty = new JLabel("Host:");
lpanel3.add(hosty);
lpanel3.add(Box.createRigidArea(new Dimension(5,0)));
hostfield = new JTextField("Enter Hostname",10);
lpanel3.add(hostfield);
//port num next
portnum = new JLabel("Port Number:");
lpanel4.add(portnum);
lpanel4.add(Box.createRigidArea(new Dimension(5, 0)));
portnumfd = new JTextField("2250", 10);
lpanel4.add(portnumfd);
//create & add the connect butt
connect = new JButton("Connect");
lpanel5.add(connect);
dropconnection = new JButton("Disconnect");
lpanel5.add(dropconnection);
connect.addActionListener(this);
dropconnection.addActionListener(this);
//start the creation of the right hand panel.
rpanel.setLayout(new BoxLayout(rpanel, BoxLayout.Y_AXIS));
//create the panels again
rpanel1 = new JPanel();
rpanel2 = new JPanel();
rpanel3 = new JPanel();
rpanel4 = new JPanel();
rpanel5 = new JPanel();
rpanel.add(rpanel1);
rpanel.add(rpanel2);
rpanel.add(rpanel3);
rpanel.add(rpanel4);
rpanel.add(rpanel5);
rpanel1.setLayout(new FlowLayout(FlowLayout.LEFT));
rpanel2.setLayout(new FlowLayout(FlowLayout.LEFT));
rpanel3.setLayout(new FlowLayout(FlowLayout.LEFT));
rpanel4.setLayout(new FlowLayout(FlowLayout.LEFT));
rpanel5.setLayout(new FlowLayout(FlowLayout.LEFT));
//now start putting things into them again
//add in the font settings
String[] fonty = {"Normal", "Bold", "Italic"};
fonts = new JLabel("Set your text style:");
fontcombiBox = new JComboBox(fonty);
rpanel2.add(fonts);
rpanel2.add(Box.createRigidArea(new Dimension(4,0)));
rpanel2.add(fontcombiBox);
//default text will be plain..
fontcombiBox.setSelectedIndex(0);
String[] userstatus = {"Online", "Away", "Be Right Back", "Busy", "Out To Lunch", "On The Phone"};
ustatus = new JLabel("Select a status:");
statusbox = new JComboBox(userstatus);
rpanel2.add(ustatus);
rpanel2.add(Box.createRigidArea(new Dimension(2,0)));
rpanel2.add(statusbox);
//add in some emotion to the conversations
String[] emotion = {"Angry", "Happy", "Sad", "Crying", "Shocked", "Laughing", "Laughing My Ass Off!"};
econs = new JLabel("Select an emoticon:");
emoticons = new JComboBox(emotion);
rpanel3.add(econs);
rpanel3.add(Box.createRigidArea(new Dimension(3,0)));
rpanel3.add(emoticons);
//self comm options
talk2urself = new JLabel("Set Self Communication Mode:");
rpanel4.add(talk2urself);
talk2urselfOn = new JRadioButton("On", true);
rpanel4.add(talk2urselfOn);
rpanel4.add(Box.createRigidArea(new Dimension(4, 0)));
talk2urselfOff = new JRadioButton("Off", false);
rpanel4.add(talk2urselfOff);
//create a group that will hold both these buttons together
ButtonGroup groupy = new ButtonGroup();
//add them to the group
groupy.add(talk2urselfOn);
groupy.add(talk2urselfOff);
//create and add the change backgrd button
colourButton = new JButton("Alter Background");
rpanel5.add(colourButton);
//add in some listeners
talk2urselfOn.addActionListener(this);
talk2urselfOff.addActionListener(this);
fontcombiBox.addActionListener(this);
colourButton.addActionListener(this);
statusbox.addActionListener(this);
//add in the 'X' button in the top right corner of app
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//put all elements together
this.pack();
//show the GUI for the user..
this.show();
* Creates a new client and GUI as its the main method
public static void main(String args[])
new Client();
* This method listens for actions selected by the user and then performs the
* necessary tasks in order for the correct events to take place...!
* This method was mainly created thanks to the Developing Java GUI book which has already
* been mentioned as it covers listeners and event handling...
public void actionPerformed(ActionEvent event)
//if the send button is clicked or if hard carriage return after message
if((event.getSource() == (sendMsgButton)) || (event.getSource().equals(createMsg)))
//if theres no text dont send message
if(createMsg.getText().equals(""))
JOptionPane.showMessageDialog(this, "There's no text to send!");
else
String str = createMsg.getText();
printMessage(str);
//if the exit button is clicked
if(event.getSource() == (exitButton))
//quit the chat app
JOptionPane.showMessageDialog(this, "Thanks For Using Elliot's Chat Network! \nSee You Again Soon!");
System.exit(0);
//if the self comm option is turned on
if(event.getSource() == (talk2urselfOn))
talktoself = true;
JOptionPane.showMessageDialog(this, "You have begun self communication \nmessages you send are now displayed");
//if the self comm option is turned off
if(event.getSource() == (talk2urselfOff))
talktoself = false;
JOptionPane.showMessageDialog(this, "You have stopped self communication \nmessages you send are no longer displayed");
//for the normal font option
if(fontcombiBox.getSelectedItem().equals("Plain"))
//makes a new font style plain...
conversationDisplay.setFont(new Font("simple", Font.PLAIN, 12));
createMsg.setFont(new Font("simple", Font.PLAIN, 12));
//for the bold font option
if(fontcombiBox.getSelectedItem().equals("Bold"))
conversationDisplay.setFont(new Font("simple", Font.BOLD, 12));
createMsg.setFont(new Font("simple", Font.BOLD, 12));
//for the italic font option
if(fontcombiBox.getSelectedItem().equals("Italic"))
conversationDisplay.setFont(new Font("simple", Font.ITALIC, 12));
createMsg.setFont(new Font("simple", Font.ITALIC, 12));
* //the status events if they didnt create null points...
if(statusbox.getSelectedItem().equals("Online"))
String status = "<Online>";
printMessage(status);
if(statusbox.getSelectedItem().equals("Away"))
String status = "<Away>";
printMessage(status);
if(statusbox.getSelectedItem().equals("Be Right Back"))
String status = "<Be Right Back>";
printMessage(status);
if(statusbox.getSelectedItem().equals("Busy"))
String status = "<Busy>";
printMessage(status);
if(statusbox.getSelectedItem().equals("Out To Lunch"))
String status = "<Out To Lunch>";
printMessage(status);
if(statusbox.getSelectedItem().equals("On The Phone"))
String status = "<On The Phone>";
printMessage(status);
//the emoticons events...
if(emoticons.getSelectedItem().equals("Angry"))
String status = "<Angry>";
printMessage(status);
if(emoticons.getSelectedItem().equals("Sad"))
String status = "<Sad>";
printMessage(status);
if(emoticons.getSelectedItem().equals("Shocked"))
String status = "<Shocked>";
printMessage(status);
if(emoticons.getSelectedItem().equals("Happy"))
String status = "<Happy>";
printMessage(status);
if(emoticons.getSelectedItem().equals("Crying"))
String status = "<Crying>";
printMessage(status);
if(emoticons.getSelectedItem().equals("Laughing"))
String status = "<Laughing>";
printMessage(status);
if(emoticons.getSelectedItem().equals("Laughing My Ass Off!"))
String status = "<Laughing My Ass Off!>";
printMessage(status);
//if the colour button is clicked
if(event.getSource() == colourButton)
//create a new colour chooser
colourchoo = new JColorChooser();
//create the dialog its shown in
JColorChooser.createDialog(colourButton, "Choose your background colour", true, colourchoo, this, this);
//now show the dialog
Color col = JColorChooser.showDialog(sendMsgButton, "Choose your background colour", Color.GRAY);
//when a colour is chosen it becomes the bg colour
theWholeApp.setBackground(col);
rpanel1.setBackground(col);
rpanel2.setBackground(col);
rpanel3.setBackground(col);
rpanel4.setBackground(col);
rpanel5.setBackground(col);
lpanel1.setBackground(col);
lpanel2.setBackground(col);
lpanel3.setBackground(col);
lpanel4.setBackground(col);
lpanel5.setBackground(col);
//if the connect button is clicked
if(event.getSource() == (connect))
//get the txt entered into ip addy field & port num fields with a text check...
if(hosty.getText().equals("") || portnumfd.getText().equals("") || nickName.getText().equals(""))
JOptionPane.showMessageDialog(this, "You cant connect! \nThis is because the either the \n0 - HostName\n 0 - Port Number \n0 - Your Nick \nIs Missing...");
else
//get details and connect
username = nickName.getText();
String ipay = hostfield.getText();
String porty = portnumfd.getText();
connectto(ipay,porty);
* This method is similar to an append method in that it allows msgs recieved by the server to
* be displayed in the conversation window. It also deals with the self comm mode as if its disabled
* then no messages from the sender will be displayed.
public void moveTextToConvo(String texty)
//check
if(ignoreyourself == true)
ignoreyourself = false;
else
//If self comm is on the send message as normal
if(talktoself)
conversationDisplay.setText(conversationDisplay.getText() + texty);
else
//check message isnt sent by the current client - if it is ignore it!
if(texty.startsWith(nickName.getText()))
ignoreyourself = true;
else
conversationDisplay.setText(conversationDisplay.getText() + texty);
//allows the scroll pane to move automatically with the conversation
conversationDisplay.setCaretPosition(conversationDisplay.getText().length());
* This method (connectto) is called if the button's clicked and also sets up a relation
* between the client and clienttoserver class
public void connectto(String ipa,String portNO)
//portNO needs to be changed from string to int
int portNum = new Integer(portNO).intValue();
try
//creates a socket
socky = new Socket(ipa, portNum);
writer = new PrintWriter(socky.getOutputStream(), true);
ClienttoServer cts = new ClienttoServer(socky, this);
cts.runit();
//give user a prompt
JOptionPane.showMessageDialog(this, "You're now connected!");
catch(UnknownHostException e)
System.err.println("Unknown host...");
//prompt the user
JOptionPane.showMessageDialog(this, "Failed to connect! \nPlease try again...");
catch(IOException e)
System.err.println("Could Not Connect!");
//prompt user
JOptionPane.showMessageDialog(this, "Error! \nCould not connect - please try again!");
* This method sends msgs from current client to server, sends username and then the message.
* This is split into two different messages as the "\n" is used.
public void printMessage(String mess)
writer.println(usernamey.getText() + " says: \n" + mess);
//then clear the text in the message creation area...
createMsg.setText("");
* Accessor method to retrieve userName
public String getUName()
return username;
* Disconnect this user from the server so that they can no longer recieve/send messages
public void dropconnection()
try
//Start to close everything - informing user
writer.close();
socky.close();
//Give the user info on whats happening
JOptionPane.showMessageDialog(this, "You are now disconnected \nYou will no longer be able to \nsend and recieve messages");
System.out.println("A user has left the conversation...");
catch (IOException e)
System.err.println("IOException " + e);
The Server Class:
import java.net.*;
import java.io.*;
* This class works in sync with the ServertoClient class in order to read
* messages from clients and then send back out to all the active clients. Due to
* the usage of threading multiple clients can use this server.
* Once again some of this code is from Florians 2005 tutorial work.
public class Server
private ServerSocket server;
private ServertoClient threads[];
private static int portNo = 2250;
private static String Host = ""; //find method to retrieve ip
private int maxPeeps = 20; //20 people can talk together but this can be altered
* 1st Constructor - has no params
public Server()
* 2nd Constructor - allows for port number setting
public Server(int portnumber)
portNo = portnumber;
* 3rd Constructor - allows for port number & max users
public Server(int portnumber, int maxiusers)
portNo = portnumber;
maxPeeps = maxiusers;
* This method is to constantly listen for possible messages from clients
public void listener()
//set the time out of method to just under a minute
final int waitingTime = 500000000;
//a boolean variable to keep it waiting
boolean keepWait = true;
//create a threads array of length maxpeeps
threads = new ServertoClient[maxPeeps];
//define a variable that will be used as a count of the no of threads
int x = 0;
try
//open a new socket on this port number
server = new ServerSocket(portNo);
catch (IOException e)
System.err.println("IOException " + e);
return;
//while the keepWait is true and the no. of threads is less than the max...
while(keepWait && x < maxPeeps)
try
//set the timeout, this is the waitingTime (50 secs)
server.setSoTimeout(waitingTime);
//listen for connection to accept
Socket socky = server.accept();
System.out.println("A New User Has Connected");
//creates a new thread and adds it to array
threads[x] = new ServertoClient(this, socky);
//the thread begins
threads[x].start();
catch (InterruptedIOException e)
System.err.println("The Connection Timed Out...");
keepWait = false;
catch (IOException e)
System.err.println("IOException " + e);
x++; //increment no. of threads
//if waitingTime is reached or there are too many threads then server closes
try
server.close();
catch(IOException e)
System.err.println("IOException " + e);
return;
* This prints the string to all active threads
public void printAll(String printy)
for(int x = 0; x < threads.length; x++)
if(threads[x] !=null && threads[x].isAlive())
threads[x].sendMsg(printy);
* Main method for the server, creates a new server and then continues to listen
* for messages from different users
public static void main(String[] args)
Server chatsession = new Server();
System.out.println("The Server Is Now Running on port NO: " + portNo);
System.out.println("And IP Address: " + Host);
chatsession.listener();
[/code
The ServertoClient Classimport java.lang.Thread;
import java.net.*;
import java.io.*;
* This is the ClienttoServer class that acts as an intermediary between the server
public class ClienttoServer extends Thread
private Socket socky;
private BufferedReader bready;
private boolean active;
private Client client;
* This is the constructor to create a new client service
public ClienttoServer(Socket socket, Client cli)
socky = socket;
active = false;
client = cli;
//try to read from the client
try
bready = new BufferedReader(new InputStreamReader(socky.getInputStream()));
catch (IOException e)
System.err.println("IOException " + e);
* This method reads in from the client
public void runit()
active = true;
while(active == true)
{//continue to read in and then change the text in the conversation window
try
String message = bready.readLine();
client.moveTextToConvo(message + "\n");
catch (IOException e)
System.err.println("IOException " + e);
active = false;
And finaly the servertoclient class
import java.net.*;
import java.io.*;
import java.lang.Thread;
* This clas provides the services that the server uses
public class ServertoClient extends Thread
private Socket socky;
private Server server;
private BufferedReader bready;
private PrintWriter writer;
* This constructor sets up the socket
public ServertoClient(Server theServer, Socket theSocket)throws IOException
socky = theSocket;
server = theServer;
//sets up the i/o streams
writer = new PrintWriter(socky.getOutputStream(), true);
bready = new BufferedReader(new InputStreamReader(socky.getInputStream()));
* This method keeps listening until user disconnects
public void run()
boolean keepRunning = true;
try
//keep listening 'til user disconnects
while(keepRunning = true)
final String tempmsg = bready.readLine();
//is there a message (if yes then print it!)
if(tempmsg == null)
else
server.printAll(tempmsg);
dropconnection();
catch (IOException e)
System.err.println("IOException in thread " + Thread.currentThread() + ": " + e);
* This method is for when a user disconnects from the server...
public void dropconnection()
try
bready.close();
writer.close();
socky.close();
catch (IOException e)
System.err.println("IOException in thread " + Thread.currentThread() + ": " + e);
System.out.println("A User Has Disconnected...");
* This method prints the message
public void sendMsg(String msg)
writer.println(msg);
}Thats it any help would be much appreciated
Cheers.Like the previous poster indicated: try to find a minimal example that shows the error your experiencing.
One thing that seems bogus is the Server.listener() method. For one thing, it can increment x even if no new connection has been established (e.g., x will be incremented if an exception is caught). -
KeyListener on combobox calander not working?
Am trying to add keylistener on this combobox calander, but somehow its not working right. The calendar is added to a JTable and the keyListener on it works, when i gets focus, but when the popup is visible it looses the keylistener? Can someone help me with this?
import com.sun.java.swing.plaf.motif.*;
import com.sun.java.swing.plaf.windows.*;
import java.awt.*;
import java.awt.event.*;
import java.text.*;
import java.util.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.event.*;
import javax.swing.plaf.*;
import javax.swing.plaf.basic.*;
import javax.swing.plaf.metal.*;
import javax.swing.table.*;
public class DateComboBox extends JComboBox
public DateComboBox()
public DateComboBox(int raekke,DefaultTableModel model,JTable tabel)
this.raekke=raekke;
this.model=model;
this.tabel=tabel;
public void setDateFormat(SimpleDateFormat dateFormat)
this.dateFormat = dateFormat;
public void setSelectedItem(Object item)
// Could put extra logic here or in renderer when item is instanceof Date, Calendar, or String
// Dont keep a list ... just the currently selected item
removeAllItems(); // hides the popup if visible
addItem(item);
super.setSelectedItem(item);
public void setText(String texte)
setSelectedItem(texte);
public String getText()
return (String)this.getSelectedItem();
public void setRaekke(int raekke)
this.raekke=raekke;
public void updateUI()
ComboBoxUI cui = (ComboBoxUI) UIManager.getUI(this);
if (cui instanceof MetalComboBoxUI)
cui = new MetalDateComboBoxUI();
} else if (cui instanceof MotifComboBoxUI)
cui = new MotifDateComboBoxUI();
} else if (cui instanceof WindowsComboBoxUI)
cui = new WindowsDateComboBoxUI();
setUI(cui);
// Inner classes are used purely to keep DateComboBox component in one file
// UI Inner classes -- one for each supported Look and Feel
class MetalDateComboBoxUI extends MetalComboBoxUI
protected ComboPopup createPopup()
return new DatePopup( comboBox );
class WindowsDateComboBoxUI extends WindowsComboBoxUI
protected ComboPopup createPopup()
return new DatePopup( comboBox );
class MotifDateComboBoxUI extends MotifComboBoxUI
protected ComboPopup createPopup()
return new DatePopup( comboBox );
// DatePopup inner class
class DatePopup implements
ComboPopup,
MouseMotionListener,
MouseListener,
KeyListener,
PopupMenuListener
public DatePopup(JComboBox comboBox)
this.comboBox = comboBox;
setFocusable(true);
addKeyListener(this);
calendar = Calendar.getInstance();
// check Look and Feel
background = UIManager.getColor("ComboBox.background");
foreground = UIManager.getColor("ComboBox.foreground");
selectedBackground = UIManager.getColor("ComboBox.selectionBackground");
selectedForeground = UIManager.getColor("ComboBox.selectionForeground");
initializePopup();
//========================================
// begin ComboPopup method implementations
public void show()
try
// if setSelectedItem() was called with a valid date, adjust the calendar
calendar.setTime( dateFormat.parse( comboBox.getSelectedItem().toString() ) );
} catch (Exception e)
{e.printStackTrace();}
updatePopup();
popup.show(comboBox, 0, comboBox.getHeight());
public void hide()
popup.setVisible(false);
protected JList list = new JList();
public JList getList()
return list;
public MouseListener getMouseListener()
return this;
public MouseMotionListener getMouseMotionListener()
return this;
public KeyListener getKeyListener()
return null;
public boolean isVisible()
return popup.isVisible();
public void uninstallingUI()
popup.removePopupMenuListener(this);
// end ComboPopup method implementations
//======================================
//===================================================================
// begin Event Listeners
// MouseListener
public void mousePressed( MouseEvent e )
// something else registered for MousePressed
public void mouseClicked(MouseEvent e)
public void mouseReleased( MouseEvent e )
if (!SwingUtilities.isLeftMouseButton(e))
return;
if (!comboBox.isEnabled())
return;
if (comboBox.isEditable())
comboBox.getEditor().getEditorComponent().requestFocus();
else
comboBox.requestFocus();
togglePopup();
protected boolean mouseInside = false;
public void mouseEntered(MouseEvent e)
mouseInside = true;
public void mouseExited(MouseEvent e)
mouseInside = false;
// MouseMotionListener
public void mouseDragged(MouseEvent e)
public void mouseMoved(MouseEvent e)
public void keyPressed(KeyEvent e)
if(e.getSource()==this)
if(e.getKeyCode()==KeyEvent.VK_CONTROL)
System.out.println("keytyped1");
public void keyTyped(KeyEvent e)
public void keyReleased( KeyEvent e )
if(e.getKeyCode()==KeyEvent.VK_CONTROL)
System.out.println("keytyped2");
if ( e.getKeyCode() == KeyEvent.VK_SPACE || e.getKeyCode() == KeyEvent.VK_ENTER )
togglePopup();
* Variables hideNext and mouseInside are used to
* hide the popupMenu by clicking the mouse in the JComboBox
public void popupMenuCanceled(PopupMenuEvent e)
protected boolean hideNext = false;
public void popupMenuWillBecomeInvisible(PopupMenuEvent e)
hideNext = mouseInside;
public void popupMenuWillBecomeVisible(PopupMenuEvent e)
// end Event Listeners
//=================================================================
//===================================================================
// begin Utility methods
protected void togglePopup()
if( isVisible() || hideNext)
hide();
else
show();
hideNext = false;
// end Utility methods
//=================================================================
// Note *** did not use JButton because Popup closes when pressed
protected JLabel createUpdateButton(final int field, final int amount)
final JLabel label = new JLabel();
final Border selectedBorder = new EtchedBorder();
final Border unselectedBorder = new EmptyBorder(selectedBorder.getBorderInsets(new JLabel()));
label.setBorder(unselectedBorder);
label.setForeground(foreground);
label.addMouseListener(new MouseAdapter()
public void mouseReleased(MouseEvent e)
calendar.add(field, amount);
updatePopup();
public void mouseEntered(MouseEvent e)
label.setBorder(selectedBorder);
public void mouseExited(MouseEvent e)
label.setBorder(unselectedBorder);
return label;
protected void initializePopup()
JPanel header = new JPanel();
header.setLayout(new BoxLayout(header, BoxLayout.X_AXIS));
header.setBackground(background);
header.setOpaque(true);
JLabel label;
label = createUpdateButton(Calendar.YEAR, -1);
label.setText("<<");
label.setToolTipText("Sidste �r");
header.add(Box.createHorizontalStrut(12));
header.add(label);
header.add(Box.createHorizontalStrut(12));
label = createUpdateButton(Calendar.MONTH, -1);
label.setText("< ");
label.setToolTipText("Sidste m�ned");
header.add(label);
monthLabel = new JLabel("", JLabel.CENTER);
monthLabel.setForeground(foreground);
header.add(Box.createHorizontalGlue());
header.add(monthLabel);
header.add(Box.createHorizontalGlue());
label = createUpdateButton(Calendar.MONTH, 1);
label.setText(" >");
label.setToolTipText("N�ste m�ned");
header.add(label);
label = createUpdateButton(Calendar.YEAR, 1);
label.setText(">>");
label.setToolTipText("N�ste �r");
header.add(Box.createHorizontalStrut(12));
header.add(label);
header.add(Box.createHorizontalStrut(12));
popup = new JPopupMenu();
popup.setBorder(BorderFactory.createLineBorder(Color.black));
popup.setLayout(new BorderLayout());
popup.setBackground(background);
popup.addPopupMenuListener(this);
popup.add(BorderLayout.NORTH, header);
popup.getAccessibleContext().setAccessibleParent(comboBox);
// update the Popup when either the month or the year of the calendar has been changed
protected void updatePopup()
monthLabel.setText( monthFormat.format(calendar.getTime()) );
if (days != null)
popup.remove(days);
days = new JPanel(new GridLayout(0, 7));
days.setBackground(background);
days.setOpaque(true);
Calendar setupCalendar = (Calendar) calendar.clone();
setupCalendar.set(Calendar.DAY_OF_WEEK, setupCalendar.getFirstDayOfWeek());
for (int i = 0; i < 7; i++)
int dayInt = setupCalendar.get(Calendar.DAY_OF_WEEK);
JLabel label = new JLabel();
label.setHorizontalAlignment(JLabel.CENTER);
label.setForeground(foreground);
if (dayInt == Calendar.SUNDAY)
label.setText("s�n");
else if (dayInt == Calendar.MONDAY)
label.setText("man");
else if (dayInt == Calendar.TUESDAY)
label.setText("tir");
else if (dayInt == Calendar.WEDNESDAY)
label.setText("ons");
else if (dayInt == Calendar.THURSDAY)
label.setText("tor");
else if (dayInt == Calendar.FRIDAY)
label.setText("fre");
else if (dayInt == Calendar.SATURDAY)
label.setText("l�r");
// days.add(label);
setupCalendar.roll(Calendar.DAY_OF_WEEK, true);
setupCalendar = (Calendar) calendar.clone();
setupCalendar.set(Calendar.DAY_OF_MONTH, 1);
int first = setupCalendar.get(Calendar.DAY_OF_WEEK);
for (int i = 0; i < (first-2) ; i++)
days.add(new JLabel(""));
for (int i = 1; i <= setupCalendar.getActualMaximum(Calendar.DAY_OF_MONTH); i++)
final int day = i;
final JLabel label = new JLabel(String.valueOf(day));
label.setHorizontalAlignment(JLabel.CENTER);
label.setForeground(foreground);
label.addMouseListener(new MouseAdapter()
public void mouseReleased(MouseEvent e)
label.setOpaque(false);
label.setBackground(background);
label.setForeground(foreground);
calendar.set(Calendar.DAY_OF_MONTH, day);
hide();
comboBox.requestFocus();
if (tabel.isEditing())
tabel.getCellEditor(tabel.getEditingRow(),
tabel.getEditingColumn()).stopCellEditing();
model.setValueAt(dateFormat.format(calendar.getTime()),raekke,1);
tabel.requestFocus();
public void mouseEntered(MouseEvent e)
label.setOpaque(true);
label.setBackground(selectedBackground);
label.setForeground(selectedForeground);
public void mouseExited(MouseEvent e)
label.setOpaque(false);
label.setBackground(background);
label.setForeground(foreground);
days.add(label);
popup.add(BorderLayout.CENTER, days);
popup.pack();
private JComboBox comboBox;
private Calendar calendar;
private JPopupMenu popup;
private JLabel monthLabel;
private JPanel days = null;
private SimpleDateFormat monthFormat = new SimpleDateFormat("MMM yyyy");
// private int antaldage=1;
private Color selectedBackground;
private Color selectedForeground;
private Color background;
private Color foreground;
private SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
private int raekke=-1;
private DefaultTableModel model;
private JTable tabel;
}come on help plz....
Maybe you are looking for
-
The last version of Firefox that I had was the one before 3.6. I stopped upgrading due to it always messing up and not working right for me... whether it be due to vista, or just errors on your part. My husband decided to upgrade firefox to the newes
-
Fast User Switching causing iMovie 09 to hang/freeze
I recently purchased a new Unibody 2.4Ghz MacBook Pro 15.4" My wife uses it to process our home movies in iMovie '09. So I thought it would be swell to utilize Fast User Switching so she could do that with her account when the MacBook was free and wo
-
Can't send mail with server -- upgrade OS?
I have a new MB, so have been setting things up. In the course of all this, I realized, what with checking settings, etc., that I can easily send mail from the new laptop, which is running whatever the latest OS is -- I think that's 15.5.5, but I hav
-
Jdev3.2,BC4J, ERROR STACK OVER FLOW
HI I created a BC4J project based on 10 tables. when testing the module an error stack overflow is thrown when trying to open some views. these same views are accessed successfully when the BC4J project is created whith less tables or with only these
-
Error using ES Workplace PurchaseOrderByIDQueryResponse_In in WD CE 7.1
Hi guys, I'm making the tutorial "How to consume an Enterprise Service from the ES Workplace in Web Dynpro", the url of blog is: https://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/6805. [original link is broken] [original link is broken] [original