问答题

本题的功能是获取鼠标在窗口中的位置。当鼠标移进窗口中,就会实时显示鼠标在窗口中的相对位置,比如显示为“鼠标的当前位置:X:Y”。(其中,X为横坐标,Y为纵坐标)
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
public class java2

public static void main(string[]args)

MouseFrame frame=new MouseFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();


class MouseFrame extends JFrame

public MouseFrame()

setTitle("java2");
setSize(WIDTH,HEIGHT);
MousePanel panel=new MousePanel();
Container contentPane=getContentPane();
contentPane.add(panel);

public static final int WIDTH=300;
public static final int HEIGHT=200;

class MousePanel extends JPanel

public MousePanel()

addMouseListener(new MouseHandler());
addMouseMotionListener(new MouseMorionHandler());

public void paintComponent(Graphics g)

super.paintComponent(g);
String text="鼠标指针位置:"+mousex+":"+mousey;
g.drawstring(text,10,10);

private int mousex,mousey;
private class MouseMotionHandler______

public void mouseMoved(MouseEvent event)

mousex=event.getX();
mousey=event.getY();
repaint();

public void mouseDragged(MouseEvent event)

mousex=event.getX();
mousey=event.getY();
repaint();


private class MouseHandler______

public void mousePressed(MouseEvent event)
mousex=event.getX();
mousey=event.getY();


【参考答案】

第1处:implements MouseMotionListener
第2处:extends MouseAdapter
热门 试题

问答题
本题中使用了选项卡,窗口中有一个选项卡,总共有“系统”、“声卡”、“显卡”、“网卡”和“帮助”5项选项面。单击各个选项的文字标签后,所选中的选项将为当前选项。“系统”选项上有3个复选按钮,分别控制“声卡”、“显卡”和“网卡”三个选项,选中某个按钮后,它所指示的选项就可用,否则不可用。 import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; public class java3 extends JFrame JTabbedPane config=new JTabbedPane(); public java3() super( java3 ); setSize(500,300); setDefaultCloseOperation(EXIT_ON_CLOSE); JPanel configPane=new JPanel(); configPane.setLayout(new BoxLayout(configPane.BoxLayout.Y_AXIS)); JTextArea question=new JTextArea( 下面的哪个选项 n + 你想设置 ); question.setEditable(false); question.setMaximumSize(new Dimension(300,50)); question.setAlignmentX(0.0f); question.setBackground(configPane.getBackground()); JCheckBox audioCB=new JCheckBox( 声卡 ,true); JCheckBox nicCB=new JCheckBox( 网卡 ,true); JCheckBox tvCB=new JCheckBox( 显示卡 ,false); configPane.add(Box.createVerticalGlue()); configPane.add(question); configPane.add(audioCB); configPane.add(nicCB); configPane.add(tvCB); configPane.add(Box.createVerticalGlue()); JLabel audioPane=new JLabel( 声卡页面 ); JLabel nicPane=new JLabel( 网卡页面 ); JLabel tvPane=new JLabel( 显示卡页面 ); JLabel helpPane=new JLabel( 帮助信息 ); audioCB.addItemListener(new TabManager(audioPane)); nicCB.addItemListener(new TabManager(nicPane)); tvCB.addItemListener(new TabManager(tvPane)); config.addTab( 系统 ,null,configPane, Choose Installed Options ); config.addTab( 声卡 ,null,audioPane, Audio system configuration ); config.addTab( 网卡 ,null,nicPane, Networking configuration ); config.addTab( 显示卡 ,null,tvPane, Video system configuration ); config.addTab( 帮助 ,null,helpPane, How DoI... ); getContentPane().add(config,BorderLayout.CENTER); class TabManger implements ActionListener Component tab; public TabManager(Component tabToManage) tab=tabToManage; public void ItemStateChanged(ItemEvent ie) int index=config.indexOfComponent(tab); if(index!=-1) config.setEnabledAt(index,ie.getStateChange()==ItemEvent.SELECTED); this.repaint(); public static void main(String args[]) java3 sc=new java3(); sc.setVisible(true);