单击鼠标实现文字的转化 在Jpanel中先显示A,单击鼠标后变为B,再次单击又变为A,如此循环。还望高手提供源码,谢了! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在JPanel中放一个JLabel,JLabel的文字设置为"A",用一个boolean型变量 isA 保存状态,或直接JLabel.getText().equals("A").监听按钮点击事件,判断JLabel的内容,再做JLabel.setText(String str)。 import javax.swing.JFrame;import javax.swing.JPanel;import java.awt.Rectangle;import java.awt.GridLayout;import javax.swing.JButton;import java.awt.event.ActionListener;import java.awt.event.ActionEvent;import java.awt.CardLayout;public class Frame3 extends JFrame{ public Frame3() { try { jbInit(); } catch (Exception exception) { exception.printStackTrace(); } } private void jbInit() throws Exception { getContentPane().setLayout(null); jPanel1.setBounds(new Rectangle(86, 64, 234, 171)); jPanel1.setLayout(gridLayout1); JButton jButton1 = new JButton("A"); JButton jButton2 = new JButton("B"); this.getContentPane().add(jPanel1); ActionListener s=new ActionListener(){ public void actionPerformed(ActionEvent e) { gridLayout1.next(jPanel1); } }; jButton1.addActionListener(s); jButton2.addActionListener(s); jPanel1.add(jButton1,"1"); jPanel1.add(jButton2,"2"); this.setVisible(true); } JPanel jPanel1 = new JPanel(); CardLayout gridLayout1 = new CardLayout(); public static void main(String[] a){ new Frame3(); }}// 这个是用 2个按钮实现的 import java.awt.*; import java.awt.event.*; import javax.swing.*;public class ClickToChange extends JFrame { public ClickToChange(){ final JLabel jlable1=new JLabel("Java is fun!"); add(jlable1); jlable1.addMouseListener(new MouseListener(){ public void mouseClicked(MouseEvent e){ if(jlable1.getText().equals("Java is fun!")) jlable1.setText("Welcome to Java!"); else jlable1.setText("Java is fun!"); } }); } public static void main(String[] args) { ClickToChange frame=new ClickToChange(); frame.setTitle("Click to change!"); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(200,200); frame.setVisible(true); }}编译的时候出现了错误:<匿名 ClickToChange$1> 不是抽象的,并且未覆盖 java.awt.event.MouseListener 中的抽象方法 mouseExited(java.awt.event.MouseEvent)还望高手解释一下,帮帮忙! import java.awt.*; import java.awt.event.*; import javax.swing.*;public class ClickToChange extends JFrame { public ClickToChange(){ final JLabel jlable1=new JLabel("Java is fun!"); add(jlable1); jlable1.addMouseListener(new MouseListener(){ public void mouseExited(MouseEvent e){ } public void mouseEntered(MouseEvent e){ } public void mouseReleased(MouseEvent e){ } public void mousePressed(MouseEvent e){ } public void mouseClicked(MouseEvent e){ if(jlable1.getText().equals("Java is fun!")) jlable1.setText("Welcome to Java!"); else jlable1.setText("Java is fun!"); } }); } public static void main(String[] args) { ClickToChange frame=new ClickToChange(); frame.setTitle("Click to change!"); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(200,200); frame.setVisible(true); }}搞完了,可是出了很多莫名其妙的问题。比如内部类引用的变量必须是final的。而且覆盖MouseClick的这么多方法很繁琐,应该还有更简便的方法吧。希望有更好的答案回复。谢谢大家了。 http上传和下载范例 java添加背景图片 gb2312转unicode 一个small问题 一个关于NoClassDefFoundError的问题? 关于java中写文件的问题 [原创翻译]从JAR文件中读取文件 菜鸟学java百问(2) 各位高手,请教一个简单的问题! 请问jbuilder6.0的注册码 问一个不该问但想知道的幼稚问题 final 有什么作用?
监听按钮点击事件,判断JLabel的内容,再做JLabel.setText(String str)。
import javax.swing.JPanel;
import java.awt.Rectangle;
import java.awt.GridLayout;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.CardLayout;
public class Frame3 extends JFrame{
public Frame3() {
try {
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
} private void jbInit() throws Exception {
getContentPane().setLayout(null);
jPanel1.setBounds(new Rectangle(86, 64, 234, 171));
jPanel1.setLayout(gridLayout1);
JButton jButton1 = new JButton("A");
JButton jButton2 = new JButton("B");
this.getContentPane().add(jPanel1);
ActionListener s=new ActionListener(){
public void actionPerformed(ActionEvent e) {
gridLayout1.next(jPanel1);
}
};
jButton1.addActionListener(s);
jButton2.addActionListener(s);
jPanel1.add(jButton1,"1");
jPanel1.add(jButton2,"2");
this.setVisible(true);
} JPanel jPanel1 = new JPanel();
CardLayout gridLayout1 = new CardLayout();
public static void main(String[] a){
new Frame3();
}
}// 这个是用 2个按钮实现的
import java.awt.event.*;
import javax.swing.*;
public class ClickToChange extends JFrame {
public ClickToChange(){
final JLabel jlable1=new JLabel("Java is fun!");
add(jlable1);
jlable1.addMouseListener(new MouseListener(){
public void mouseClicked(MouseEvent e){
if(jlable1.getText().equals("Java is fun!"))
jlable1.setText("Welcome to Java!");
else jlable1.setText("Java is fun!");
}
});
}
public static void main(String[] args) {
ClickToChange frame=new ClickToChange();
frame.setTitle("Click to change!");
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200,200);
frame.setVisible(true);
}
}
编译的时候出现了错误:<匿名 ClickToChange$1> 不是抽象的,并且未覆盖 java.awt.event.MouseListener 中的抽象方法 mouseExited(java.awt.event.MouseEvent)
还望高手解释一下,帮帮忙!
import java.awt.event.*;
import javax.swing.*;
public class ClickToChange extends JFrame {
public ClickToChange(){
final JLabel jlable1=new JLabel("Java is fun!");
add(jlable1);
jlable1.addMouseListener(new MouseListener(){
public void mouseExited(MouseEvent e){
}
public void mouseEntered(MouseEvent e){
}
public void mouseReleased(MouseEvent e){
}
public void mousePressed(MouseEvent e){
}
public void mouseClicked(MouseEvent e){
if(jlable1.getText().equals("Java is fun!"))
jlable1.setText("Welcome to Java!");
else jlable1.setText("Java is fun!");
}
});
}
public static void main(String[] args) {
ClickToChange frame=new ClickToChange();
frame.setTitle("Click to change!");
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200,200);
frame.setVisible(true);
}
}
搞完了,可是出了很多莫名其妙的问题。比如内部类引用的变量必须是final的。而且覆盖MouseClick的这么多方法很繁琐,应该还有更简便的方法吧。希望有更好的答案回复。谢谢大家了。