当前位置: 代码迷 >> Java相关 >> 一道简单的JAVA题,问到点小问题.望指教
  详细解决方案

一道简单的JAVA题,问到点小问题.望指教

热度:149   发布时间:2005-10-17 17:31:00.0
一道简单的JAVA题,问到点小问题.望指教

题目目的是:放一个BUTTON 我每点击一下,BUTTON的尺寸会相应的增大 点到一定的大小 再点击就会缩小 如果已缩小到原有的尺寸 再点又回增大 就这样反复 算是一个GUI的练习吧... 可是我现在连最基本的把他点大都出现了问题 我的代码如下: import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.border.*; import javax.swing.JComponent;

public class Fiona extends JFrame implements ActionListener,MouseListener { private JButton b=new JButton("Succeeds by a quiet attitude"); private Panel p=new Panel(); public Fiona() { this.setSize(350,250); this.setBackground(Color.lightGray); this.setTitle("Natsumi Abe"); this.getContentPane().add(p,BorderLayout.CENTER); //p.scrollRectToVisible(); p.add(b); Border border=BorderFactory.createBevelBorder(BevelBorder.LOWERED, new Color(45,92,162), new Color(43,66,97), new Color(45,92,162), new Color(84,123,200)); //使窗体产生立体感

b.setForeground(Color.cyan); b.addActionListener(this); this.setVisible(true); } public void actionPerformed(ActionEvent e) { int x=0,y=0,w=0,h=0; w=b.getWidth(); h=b.getHeight(); x=b.getX(); y=b.getY(); b.setBorder(BorderFactory.createEmptyBorder(x,y,w+10,h+10)); } public void mouseClicked(MouseEvent e) { /*if(e.getSource()==b) { final int i=140,j=15; final int x=50,y=10; b.setSize(i+x,j+y); }*/ } public void mousePressed(MouseEvent e){} public void mouseReleased(MouseEvent e){} public void mouseEntered(MouseEvent e){} public void mouseExited(MouseEvent e){} public static void main(String args[]) { new Fiona(); } } 望朋友指导.如果无法做出全部.能否先指导我如何点它,它自动增大尺寸...

搜索更多相关的解决方案: JAVA  到点  指教  

----------------解决方案--------------------------------------------------------
你的题目有问题。你想想如果放大和缩小的 尺寸是相同的,那么这就意味着不会有第二次放大,因为第二次点击就意味着又缩到原来尺寸了。
----------------解决方案--------------------------------------------------------
恩..好象的确如此 那也不用缩小了 只要做放大部分 我每点一下 就放大一次... 可是我那段代码还是有问题 我知道问题大多就出在b.setBorder(BorderFactory.createEmptyBorder(x,y,w+10,h+10)); 可是我知识面浅 实在不知道该用什么属性或方法开实现 请KAI或其他高手指教 真的很感激
----------------解决方案--------------------------------------------------------

import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.border.*; import javax.swing.JComponent;

public class Fiona extends JFrame implements ActionListener,MouseListener { private JButton b=new JButton("Succeeds by a quiet attitude"); private Panel p=new Panel(); private int Xsize = 200,Ysize = 30; private int count = 0; public Fiona() { this.setSize(350,250); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //退出机制,不加实在不方便 this.setBackground(Color.lightGray); this.setTitle("Natsumi Abe"); this.getContentPane().add(p,BorderLayout.CENTER); //p.scrollRectToVisible(); p.add(b); Border border=BorderFactory.createBevelBorder(BevelBorder.LOWERED, new Color(45,92,162), new Color(43,66,97), new Color(45,92,162), new Color(84,123,200)); //使窗体产生立体感

b.setForeground(Color.cyan); b.setPreferredSize(new Dimension(Xsize,Ysize)); //设置按钮的初始大小 b.addActionListener(this); this.setVisible(true); }

public void actionPerformed(ActionEvent e) { /* int x=0,y=0,w=0,h=0; w=b.getWidth(); h=b.getHeight(); x=b.getX(); y=b.getY(); b.setBorder(BorderFactory.createEmptyBorder(x,y,w+10,h+10)); */ switch(count){ //当count为0时则进行按钮变大操作,为1时则变小 case 0: if(Xsize < getWidth()) //当宽小于窗体宽度时进行变大操作,否则将count改为1 { Xsize += 10; //宽和高每次增加10 Ysize += 10; b.setPreferredSize(new Dimension(Xsize,Ysize)); b.updateUI(); //必须加这句,否则不能改变按钮大小 } else{ count = 1; } break; case 1: if(Xsize > 200){ Xsize -= 10; Ysize -= 10; b.setPreferredSize(new Dimension(Xsize,Ysize)); b.updateUI(); } else{ count = 0; } break; } } public void mouseClicked(MouseEvent e) { /*if(e.getSource()==b) { final int i=140,j=15; final int x=50,y=10; b.setSize(i+x,j+y); }*/ } public void mousePressed(MouseEvent e){} public void mouseReleased(MouseEvent e){} public void mouseEntered(MouseEvent e){} public void mouseExited(MouseEvent e){}

public static void main(String args[]) { new Fiona(); } }


----------------解决方案--------------------------------------------------------
又是叶子帮我解决的问题,呵
还有注释  实在太好了

我要好好研究一下你的代码了
多谢
----------------解决方案--------------------------------------------------------
  相关解决方案