主观

本题中,主窗口有一个按钮、一个文本域和一个复选按钮,初始时窗口的大小是不能调整的,选中复选按钮后,窗口大小就可以进行调整,如果撤销复选按钮的选择,则窗口的大小又不能调整,单击按钮可以关闭程序。

import java.awt.*;

import java.awt.event.*;

class MyFrame. extends Frame       

{Checkbox box;

TextArea text;

Button button;

MyFrame(String s)

{super(s);

box=new Checkbox("设置窗口是否可调整大

小");

text=new TextArea(12,12);

button=new Button("关闭窗口");

button.addActionListener(this);

box.addltemListener(this);

setBounds(100,100,200,300);

setVisible(true);

add(text,BorderLayout.CENTER);

add(box.BorderLayout.SOUTH);

add(button.BorderLayout.NORTH);

       

validate;

}

public void itemStateChanged(ItemEVent e)

{if(box.getState= =true)

{setResizable(true);

}

else

{ setResizable(false);

}

}

public void actionPerformed(ActionEvent e)

{dispose;

}

}

class java2

{public static void main(String args[])

{ new MyFrame("java2");

}

}

参考答案
您可能感兴趣的试题

本题的功能是监听鼠标左右键的单击,以及面板中滚动条的添加。在窗口的画板中单击鼠标左键,在单击的位置绘制一个圆,当绘制的圆大于画板的大小时,画板就添加滚动条,在画板中单击鼠标右键,则清除画板中的所有图形。

import javax.swing.*;

import javax.swing.event.MouselnputAdapter;

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.or-

ange,

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);

bjects=new Vector;

JLabel instructionsLeft=new JLabel("单击鼠标

左键画圆.");

JLabel instructionsRight=new JLabel("单击鼠

标右键清空画板.");

JPanel instructionPanel=new JPanel(new Grid-

Layout(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

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 MouseLis-

tener)

JScrollPane scroller=new JScrollPane(drawing-

Area);

scroller.setPreferredSize(new Dimension(200,

200));

setLayout(new BorderLayout);

add(instructionPanel,BorderLayout.NORTH);

add(scroller,BorderLayout.CENTER):

}

class MyMouseListener extends mouseInputAdapt-

er{

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/z;

int Y=e.getY-H/2 

if(x<0)x=0; 

if(y

Rectangle rect=new Rectangle(X,Y,W,H);

objeets.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.revalidateI;

}

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);

}

}

¥

订单号:

遇到问题请联系在线客服

订单号:

遇到问题请联系在线客服