刚学完GUI,做一个小记事本,关于事件监听器..获取事件源有问题....求高手

Gosling_Don 2012-11-27 05:43:17
以下是代码......
先说明一下,界面已经能出来了,也能运行出来,给复制,粘贴,什么的加监听器,获取事件源的时间有问题,貌似获取不了事件源信息啊.....求高手帮忙看看
关于背景音乐的监听部分先空着.....


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.imageio.*;
import java.io.*;
import java.applet.*;
import java.net.*;

class TextPanel extends JPanel {
Color color = new Color(123,122,255);
Font font = new Font("楷体",Font.BOLD,33);
JTextArea texta;
JScrollPane sp;
public TextPanel() {
texta = new JTextArea(10,20);
sp = new JScrollPane(texta);
setLayout(new BorderLayout());
add(sp,BorderLayout.CENTER);
}
}

class Text extends JFrame {
TextPanel pane;
JMenu media = new JMenu("背景音乐");
JMenu FSetting = new JMenu("字体设置");
JMenu FColor = new JMenu("字体颜色");
JMenu FSize = new JMenu("字体形状");
JMenuItem play = new JMenuItem("播放");
JMenuItem stop = new JMenuItem("停止");
JMenuBar menuBar= new JMenuBar();

JPopupMenu pop = new JPopupMenu();
JMenuItem paste = new JMenuItem("粘贴");
JMenuItem copy = new JMenuItem("复制");
JMenuItem delete= new JMenuItem("删除");

JCheckBoxMenuItem st = new JCheckBoxMenuItem("宋体");
JCheckBoxMenuItem kt = new JCheckBoxMenuItem("楷体");
JCheckBoxMenuItem red = new JCheckBoxMenuItem("红色");
JCheckBoxMenuItem blue = new JCheckBoxMenuItem("蓝色");

public Text() {
this.setTitle("MyText");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pane = new TextPanel();

play.addActionListener(new TextAction());
stop.addActionListener(new TextAction());

media.add(play);
media.add(stop);
FColor.add(red);
FColor.add(blue);
FSize.add(st);
FSize.add(kt);
FSetting.add(FColor);
FSetting.add(FSize);
pop.add(paste);
pop.add(copy);
pop.add(delete);
menuBar.add(media);
menuBar.add(FSetting);

paste.addActionListener(new TextAction());
copy.addActionListener(new TextAction());
delete.addActionListener(new TextAction());
st.addActionListener(new TextAction());
kt.addActionListener(new TextAction());
red.addActionListener(new TextAction());
blue.addActionListener(new TextAction());





pane.texta.addMouseListener(new MouseAdapter(){
public void mouseReleased(MouseEvent e) {
if(e.isPopupTrigger())
pop.show(pane.texta,e.getX(),e.getY());
}
} );

Container container = this.getContentPane();
container.add(pane);
setJMenuBar(menuBar);
this.setSize(500,400);
setVisible(true);



}
}

class TextAction implements ActionListener {
public void actionPerformed(ActionEvent e) {
if(e.getSource()==red) {
pane.texta.setSelectedTextColor(Color.RED);
}
if(e.getSource()==blue) {
pane.texta.setSelectedTextColor(Color.BLUE);
}
if(e.getSource()==kt) {
pane.texta.setFont(new Font("楷体",Font.BOLD,40));
}
if(e.getSource()==st) {
pane.texta.setFont(new Font("宋体",Font.BOLD,50));
}
if(e.getSource()==paste) {
pane.texta.paste();
}
if(e.getSource()==copy) {
pane.texta.paste();
}
if(e.getSource()==delete) {
pane.texta.replaceSelection("");
}


}
}

public class MyText {
public static void main(String args[]) {
Text text = new Text();
}
}
...全文
152 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Gosling_Don 2012-12-15
  • 打赏
  • 举报
回复
谢谢了,呵呵, 新手啊,忘记那是个内部类了....
失落夏天 2012-11-27
  • 打赏
  • 举报
回复
我挺喜欢GUI的,虽然不怎么好看,但实在。 你说明问题的时候要注意说明一下要点,多描述些信息。 比如: 貌似获取不了事件源信息啊 那产生的效果是什么呢? 监听里面的方法不执行是么? 具体一点。 另外最后补充一下,代码大体上看了一下,好像犯了一个我以前经常犯的错误,忘了添加焦点。 你先描述下具体的效果吧。

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧