问答题

本题中,主窗口有一个按钮“打开对话框”和一个文本域,单击按钮“打开对话框”后会弹出一个对话框,对话框上有两个按钮“Yes”和“No”,单击对话框上的“Yes”和“No”按钮后返回主窗口,并在右侧文本域中显示刚才所单击的按钮信息。
import java.awt.event.*;
import java.awt.*;
class MyDialog______implements ActionListener
static final int YES=1,NO=0;
int message=-1;Button yes,no;
MyDialog(Frame f,String s,boolean b)
super(f,s,b);
yes=new Button("Yes");yes.addActionListener(this);
no=new Button("No");no.addActionListener(this);
setLayout(new FlowLayout());
add(yes);add(no);
setBounds(60,60,100,100);
addWindowListener(new WindowAdapter()
public void windowClosing(WindowEvent e)
message=-1;setVisible(false);
);
public void actionPerformed(ActionEvent e)
if(e.getSource()==yes)
message=YES;
setVisible(false);
else if(e.getSource()==no)
message=NO;
setVisible(false);

public int getMessage()
return message;

class Dwindow extends Frame implements ActionListener
TextArea text;Button button;MyDialog dialog;
Dwindow(String s)
super(s);
text=new TextArea(5,22);button=new Button("打开对话框");
button.addActionListener(this);
setLayout(new FlowLayout());
add(button);add(text);
dialog=new MyDialog(this,"Dialog",true);
setBounds(60,60,300,300);setVisible(true);
validate();
addWindowListener(new WindowAdapter()
public void windowClosing(WindowEvent e)
(System.exit(0);
);
public void actionPerformed(ActionEvent e)
if(e.getSource()==button)
______;
if(dialog.getMessage()==MyDialog.YES)
text.append("n你单击了对话框的yes按钮");
else if(dialog.getMessage()==MyDialog.NO)
text.append("\n你单击了对话框的No按钮");


public class java2
public static void main(String args[])
(new Dwindow("java2");

【参考答案】

第1处:extends Dialog
第2处:dialog.setVisible(true)
热门 试题

问答题
本题的功能是监听鼠标左右键的单击,以及面板中滚动条的添加。在窗口的画板中单击鼠标左键,在单击的位置绘制一个圆,当绘制的圆大于画板的大小时,画板就添加滚动条,在画板中单击鼠标右键,则清除画板中的所有图形。 import javax.swing.*; import javax.swing.event.MouseInputAdapter; import java.awt.*; import java.awt.event.*; import java.util.*; public class java3 extends JPanel private Dimension size; private Vector objects; private final Color colors[]= Color.red,Color.blue,Color.green,Color.orange, Color.cyan,Color.magenta,Color.darkGray,Color.yellow; private final int color_n=colors.length; JPanel drawingArea; public java3() setOpaque(true); size=new Dimension(0,0); objects=new Vector(); JLabel instructionsLeft=new JLabel( 单击鼠标左键画圆. ); JLabel instructionsRight=new JLabel( 单击鼠标右键清空画板. ); JPanel instructionPanel=new JPanel(new GridLayout(0,1)); instructionPanel.add(instructionsLeft); instructionPanel.add(instructionsRight); drawingArea=new JPanel() protected void paintComponent(Graphics g) super.paintComponent(g); Rectangle rect; for(int i=0;i<objects.size();i++) rect=(Rectangle)objects.elementAt(i); g.setColor(colors[(i%color_n)]); g.fillOval(rect.x,rect.y,rect.width,rect.height); ; drawingArea.setBackground(Color.white); drawingArea.addMouseListener(new MouseListener()); JScrollPane scroller=new JScrollPane(drawingArea); scroller.setPreferredSize(new Dimension(200,200)); setLayout(new BorderLayout()); add(instructionPanel,BorderLayout.NORTH); add(scroller,BorderLayout.CENTER); class MyMouseListener extends mouseInputAdapter final int W=100; final int H=100; public void mouseReleased(MouseEvent e) boolean changed=false; if(SwingUtilities.isRightMouseButton(e)) objects.removeAllElements(); size.width=0; size.height=0; changed=true; else int x-e.getX()-W 2; int y=e.getY()-H 2; if(x<0)x=0; if(Y<0)y=0; Rectangle rect=new Rectangle(x,y,W,H); objects.addElement(rect); drawingArea.scrollRectToVisible(rect); int this_width=(x+W+2); if(this width>size.width) size.width=this_width;changed=true; int this_height=(y+H+2); if(this_height>size.height) size.height=this_height;changed=true; if(changed) drawingArea.setPreferredSize(size); drawingArea.revalidate(); drawingArea.paint(); public static void main(String args[]) JFrame frame=new JFrame( java3 ); frame.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e)System.exit(0); ); frame.setContentPane(new java3()); frame.pack(); frame.setVisible(true);