标题:一道简单的JAVA题,问到点小问题.望指教
只看楼主
樱尔
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2005-10-3
 问题点数:0 回复次数:4 
一道简单的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 到点 指教 
2005-10-17 17:31
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
得分:0 
你的题目有问题。你想想如果放大和缩小的 尺寸是相同的,那么这就意味着不会有第二次放大,因为第二次点击就意味着又缩到原来尺寸了。

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2005-10-17 17:39
樱尔
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2005-10-3
得分:0 
恩..好象的确如此 那也不用缩小了 只要做放大部分 我每点一下 就放大一次... 可是我那段代码还是有问题 我知道问题大多就出在b.setBorder(BorderFactory.createEmptyBorder(x,y,w+10,h+10)); 可是我知识面浅 实在不知道该用什么属性或方法开实现 请KAI或其他高手指教 真的很感激

2005-10-17 19:19
飘飘叶子
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:597
专家分:10
注 册:2005-8-17
得分:0 

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


向着软件工程师的目标前进!
2005-10-17 20:17
樱尔
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2005-10-3
得分:0 
又是叶子帮我解决的问题,呵
还有注释  实在太好了

我要好好研究一下你的代码了
多谢

2005-10-17 21:18



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-30446-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.160089 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved