944,103 Members | Top Members by Rank

Ad:
  • Java Discussion Thread
  • Unsolved
  • Views: 20493
  • Java RSS
Jul 17th, 2005
0

adding keylistener

Expand Post »
hi guys, i need to write a program about slide show in java, please help me with these wrong code :

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

class myframe extends JWindow
{

myframe()
{
setLocation(200,200);
setSize(250,150);
addKeyListener(new Listen());
show();


}


class Listen extends KeyAdapter
{
public void keyPressed(KeyEvent e){
if (e.getKeyCode() == e.VK_ENTER)
{

System.exit(0);}
}
}

}

public class key_listener
{
public static void main(String[] args )
{
new myframe();
}
}

thanks in advance
Similar Threads
Reputation Points: 10
Solved Threads: 0
Newbie Poster
acunlai is offline Offline
3 posts
since Jul 2005
Jul 18th, 2005
0

Re: adding keylistener

You have to override all the keylistener methods:

Java Syntax (Toggle Plain Text)
  1. public void keyTyped(KeyEvent key)
  2. {
  3.  
  4. }
  5. public void keyPressed(KeyEvent ke)
  6. {
  7.  
  8. }
  9. public void keyReleased(KeyEvent key)
  10. {
  11. }
Reputation Points: 113
Solved Threads: 19
Postaholic
server_crash is offline Offline
2,108 posts
since Jun 2004
Jul 18th, 2005
0

kengs slideshow

I found a slideshow program written in java at www.geocities.com/kengssoft/slideshow/

but I got that the ' addKeyListener ' didn't run properly , when it executed, it looked likes could not accept the 'Enter' key , I have j2re 1.4.2 on Win Xp
The following lines are the codes :

// SSWindow.java
import javax.swing.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;

/**
* The Slide Show window
*/
public class SSWindow extends JWindow implements KeyListener,
ActionListener, FileFilter
{

/** The image label */
JLabel imageLabel;

/** The parent */
JFrame parent;

/** The directory */
String direc;

/** List of files in the directory */
String[] filenames;

/** Delay in milliseconds */
int delay;

/** Counter */
int count;

/** The timer that displays the Slide Show */
Timer timer;



/* Constructor */
public SSWindow(JFrame par, String direc, float seconds)
{
super(par);
parent = par;

this.direc = direc;
delay = (int)(seconds*1000);

// Add label to center of screen
Container back = getContentPane();
imageLabel = new JLabel();
back.setBackground(Color.black);
back.add(imageLabel);
imageLabel.setVerticalAlignment(JLabel.CENTER);
imageLabel.setHorizontalAlignment(JLabel.CENTER);

// Display the window
JFrame loading = JFrame();

addKeyListener(this);
setSize(getToolkit().getScreenSize());
setVisible(true);

// Get the names of the files
File[] files = (new File(direc)).listFiles(this);
filenames = new String[files.length];

//System.out.println("Filenames.length = "+filenames.length);

for (int i=0; i<filenames.length; i++) {
filenames[i] = files[i].toString();
}
count = -1;
timer = new Timer(delay, this);
timer.start();
} // End constructor

/** Function that changes the image */
public void updateImage()
{
try {
imageLabel.setIcon(new ImageIcon(filenames[count]));
} catch(Exception ex) {
timer.stop();
}
} // End updateImage()

/** Handle the key released event from the text field. */
public void keyPressed(KeyEvent e)
{
int keyCode = e.getKeyCode();

switch(keyCode)
{
// If ESC is pressed, then quit
case KeyEvent.VK_ESCAPE:
timer.stop();

System.exit(0);
break;

// If ENTER is pressed, then go back to Main Menu
case KeyEvent.VK_ENTER:
timer.stop();
parent.setVisible(true);
SSWindow.this.dispose();
break;
}

} // end keyReleased()

/* These have to implemented */
public void keyTyped(KeyEvent e) {}
public void keyReleased(KeyEvent e) {}

public void actionPerformed(ActionEvent e) {
count++;
/*
// If we have gone past the last file,...
// return to beginning.
if (count > filenames.length) {
count = 0;
}
*/
// System.out.print(new Integer(count).toString()+" ");
updateImage();
} // End actionPerformed()

public boolean accept(File file)
{
String filename = file.toString();
if (filename.endsWith(".tiff") ||
filename.endsWith(".tif") ||
filename.endsWith(".gif") ||
filename.endsWith(".jpeg") ||
filename.endsWith(".jpg")) {
return true;
} else {
return false;
}
} // End accept()

} // End class SSWindow

And here is the main() class :

// SSFrame.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;

/**
* The Slide Show's Opening Screen
*/
public class SSFrame extends JFrame
{

JTextField direcText, delayText;
JFileChooser fc;

static final String
WINTITLE="Kengs' Slide Show Viewer",
DIRECTORY="Directory : ",
BROWSE="Browse...",
DELAY="Delay : ",
TIME="2",
SECONDS="seconds",
START="Start SlideShow!",
ADVANCED="Advanced...",
ABOUT="About...",
EXIT="Exit";

public static void main(String args[])
{
SSFrame ss = new SSFrame();
} // End main()

public SSFrame()
{

// Set the title
setTitle(WINTITLE);

Container back = getContentPane();
back.setLayout(new GridLayout(0,1));

back.add(new JLabel(new ImageIcon("images/kss.gif")));

fc = new JFileChooser();
fc.setFileSelectionMode(fc.DIRECTORIES_ONLY);

JPanel p1 = new JPanel();
p1.add(new JLabel(DIRECTORY, new ImageIcon ("images/directory.gif"), JLabel.CENTER));
p1.add(direcText = new JTextField(20));
JButton browseButton = new JButton(BROWSE, new ImageIcon("images/browse.gif"));
browseButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int returnVal = fc.showOpenDialog(SSFrame.this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
direcText.setText(fc.getSelectedFile().toString());
}
}
});
p1.add(browseButton);

back.add(p1);

JPanel p1e = new JPanel();
p1e.add(new JLabel(DELAY, new ImageIcon("images/delay.gif"), JLabel.CENTER));
p1e.add(delayText = new JTextField(TIME, 5));
p1e.add(new JLabel(SECONDS));
back.add(p1e);

JPanel p2 = new JPanel();
JPanel butPanel = new JPanel();
butPanel.setBorder(BorderFactory.createLineBorder(Color.black));
JButton startButton = new JButton(START, new ImageIcon("images/start.gif"));
startButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
SSFrame.this.hide();
SSWindow s = new SSWindow(
SSFrame.this, direcText.getText(),
new Float(delayText.getText()).floatValue()
);
}
});
butPanel.add(startButton);
p2.add(butPanel);
JButton aboutButton = new JButton(ABOUT, new ImageIcon("images/about.gif"));
aboutButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// Should display message box here
}
});
p2.add(aboutButton);
JButton exitButton = new JButton(EXIT, new ImageIcon("images/exit.gif"));
exitButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
p2.add(exitButton);
back.add(p2);

addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});

pack();
setVisible(true);
} // End constructor

} // End class MainFrame

Please again help me solve this problem. :-|
Thanks for the help. :p
Reputation Points: 10
Solved Threads: 0
Newbie Poster
acunlai is offline Offline
3 posts
since Jul 2005
Jul 19th, 2005
0

Re: adding keylistener

Hi everyone,

First what do you want the program to do when you press enter??

Try this

Java Syntax (Toggle Plain Text)
  1. public class A implements KeyListener
  2. {
  3.  
  4. public void keyTyped(KeyEvent key)
  5. {
  6. }
  7. public void keyPressed(KeyEvent key)
  8. {
  9. int code = key.getKeyCode();
  10.  
  11. if(code == KeyEvent.VK_ENTER)
  12. {
  13. //Do something here
  14. System.out.println("You pressed enter");
  15. }
  16.  
  17. }
  18.  
  19. public void keyReleased(KeyEvent key)
  20. {
  21. }
  22.  
  23. }

Try running the above program. If it does not work then most probably it is a bug.

Let me know what happens

Here by the way here is an article on the keylistener with sample code

http://javaalmanac.com/egs/java.awt....KeyEvents.html

I hope this helps you

Yours Sincerely

Richard West
Reputation Points: 25
Solved Threads: 10
Practically a Master Poster
freesoft_2000 is offline Offline
623 posts
since Jun 2004
Jul 19th, 2005
0

Re: adding keylistener

Hi everyone,
This listing code doesn't work for me , any suggestion welcome please...
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

class MyKeyListener extends KeyAdapter
{
public void keyReleased(KeyEvent key)
{ }
public void keyTyped(KeyEvent key)
{ }
public void keyPressed(KeyEvent key)
{
// Check for key characters.
int code = key.getKeyCode();
if(code == KeyEvent.VK_ENTER)
{

System.exit(0);
}
}
}
public class myframe
{
public static void main(String[] args)
{
JWindow wnd = new JWindow();
wnd.setSize(250,150);
wnd.show();
wnd.addKeyListener(new MyKeyListener());
}
}
Reputation Points: 10
Solved Threads: 0
Newbie Poster
acunlai is offline Offline
3 posts
since Jul 2005
May 24th, 2008
0

Re: adding keylistener

instead of extending KeyAdapter, try implementing KeyListener
Reputation Points: 72
Solved Threads: 6
Junior Poster
TheWhite is offline Offline
174 posts
since May 2008
May 24th, 2008
0

Re: adding keylistener

3 year old thread. Please do not revive these old threads.
Featured Poster
Reputation Points: 533
Solved Threads: 53
Senior Poster
jasimp is offline Offline
3,593 posts
since Aug 2007

This thread is more than three months old

No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.
Message:
Previous Thread in Java Forum Timeline: JRadioButtons not working! need help urgently
Next Thread in Java Forum Timeline: refuses to compile





About Us | Contact Us | Advertise | Acceptable Use Policy
Forum Index | Build Custom RSS Feed


Follow us on Twitter


© 2011 DaniWeb® LLC