JButton怎么设置大小宽度呢

nohacker1 2008-03-21 11:49:30
我学布局碰到一个问题
设计一个计算器样子模型,我写好代码后 就成这样子勒,上面那个按钮基本看不出来,怎么设置按钮宽度高度呢?
源码 package layouttest;

import javax.swing.JFrame;

/**
*
* @author 1
*/
public class Main {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
JFrame JF=new JFrame();
JF.setSize(300,300);

JP JP1=new JP();
JF.add(JP1);
JF.setVisible(true);

// TODO code application logic here
}

}







package layouttest;

import java.awt.BorderLayout;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JPanel;

/**
*
* @author 1
*/
public class JP extends JPanel{
public JP()
{
setLayout(new BorderLayout());
JButton JB=new JButton();

add(JB,BorderLayout.NORTH);
JPanel panel=new JPanel();
panel.setLayout(new GridLayout(3,3));
JButton jb1=new JButton("1");
JButton jb2=new JButton("2");
JButton jb3=new JButton("3");
JButton jb4=new JButton("4");
JButton jb5=new JButton("5");
JButton jb6=new JButton("6");
panel.add(jb1);
panel.add(jb2);
panel.add(jb3);
panel.add(jb4);
panel.add(jb5);
panel.add(jb6);
add(panel,BorderLayout.CENTER);
}

}
结果这样:

...全文
2586 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
盒子danbo 2008-03-26
  • 打赏
  • 举报
回复
setBounds(new Rectangle(x,y,l,w))
aaronyy2002 2008-03-25
  • 打赏
  • 举报
回复
setBounds(x,y,l,h)
这个方法可以
或是装个可视化插件
badonly 2008-03-22
  • 打赏
  • 举报
回复
是跟布局有关,跟按钮的大小没关系!
swing我也很少用,每个布局的作用自己 去研究吧
zuperman 2008-03-22
  • 打赏
  • 举报
回复
错了panel.setLayout(new GridLayout(3,3)); 应该是这句话
zuperman 2008-03-22
  • 打赏
  • 举报
回复
setLayout(new BorderLayout()); 样式的问题 换成NullLayout试试
numb1126 2008-03-22
  • 打赏
  • 举报
回复
有2种办法吧,一种是先设置JPanel的size,然后panel.setLayout(new GridLayout(行,列));这样就能得到大小一致的,随便面板大小而变化的按钮。另一种办法是直接设置按钮的坐标和大小,使用setBounds(横坐标,纵坐标,长,宽);
Java用户名密码验证实例,Java窗口程序,可以学习一下在窗体中如何初始化文本输入框、初始化密码输入框、登录按钮事件处理、初始化按钮事件处理等,并设定不允许用户改变窗口大小,运行效果如截图所示。   public class JPasswordFieldDemo extends JFrame {   JTextField username; //用户名输入框   JPasswordField password; //密码输入框   JButton logonButton; //登录按钮   JButton cancelButton; //退出按钮   public JPasswordFieldDemo() { //构造函数    super("JPasswordField演示"); //调用父类构造函数    Container container=getContentPane(); //得到容器    container.setLayout(new GridLayout(3, 2, 2, 2)); //设置布局管理器    username=new JTextField(16); //初始化文本输入框,宽度为16列    password=new JPasswordField(16); //初始化密码输入框,宽度为16列    logonButton=new JButton("登录"); //初始化登录按钮    logonButton.addActionListener( //登录按钮事件处理    new ActionListener(){    public void actionPerformed(ActionEvent evt){    char[] pw=password.getPassword(); //得到密码    String message="您的用户名:" username.getText() "\n您的密码:" new String(pw); //消息字符串    JOptionPane.showMessageDialog(JPasswordFieldDemo.this, message); //显示消息    }    });    cancelButton=new JButton("退出"); //初始化退出按钮    cancelButton.addActionListener( //初始化按钮事件处理    new ActionListener(){    public void actionPerformed(ActionEvent evt){    System.exit(0); //退出程序    }    });
Java登录程序实例:用户名密码验证示例,好像没有使用网络哦,用户名密码暂存在代码中,通过按钮事件激活函数,进行判断。部分代码如下:   username=new JTextField(16);//初始化文本输入框,宽度为16列   password=new JPasswordField(16);//初始化密码输入框,宽度为16列   logonButton=new JButton("登录"); //初始化登录按钮   logonButton.addActionListener(//登录按钮事件处理    new ActionListener(){    public void actionPerformed(ActionEvent evt){    char[] pw=password.getPassword();//得到密码    String message="您的用户名:" username.getText() "\n您的密码:" new String(pw); //消息字符串    JOptionPane.showMessageDialog(JPasswordFieldDemo.this, message);//显示消息    }    });    cancelButton=new JButton("退出");//初始化退出按钮    cancelButton.addActionListener(//初始化按钮事件处理    new ActionListener(){    public void actionPerformed(ActionEvent evt){    System.exit(0);//退出程序    }    });   container.add(new JLabel(" 用户名:"));//增加组件   container.add(username);   container.add(new JLabel(" 密码:"));   container.add(password);   container.add(logonButton);   container.add(cancelButton);   setResizable(false); //不允许用户改变窗口大小   setSize(300,120); //设置窗口尺寸   setVisible(true); //设置窗口可视   setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗口时退出程序
一个简单的程序,4个人20天的心血.package zhuyemian; import java.awt.BorderLayout; import java.awt.Cursor; import java.awt.Dimension; import java.awt.Font; import java.awt.Graphics; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JEditorPane; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JToolBar; import javax.swing.UIManager; import javax.swing.border.EtchedBorder; //import com.qhit.LandAppend; //import com.qhit.PasswordAmend; import Kehuxinxi.Kehumain; import Shouhoumain.Main; import Xiaoshouxinxi.Xiaoshoumain; import Chanpinxinxi.Chanpinmain; public class Zhuyemian extends JFrame implements Runnable{ MyPanel panel = new MyPanel(); JLabel label; public Zhuyemian() { super(); this.setIconImage(new ImageIcon("shoujitubiao.jpg").getImage());//在标题上的图片 this.setTitle("手机销售信息管理");//标题 this.setResizable(false);//大小可否改变 setSize(1024, 768); getContentPane().setLayout(null); getContentPane().add(panel); panel.setBounds(142, 37, 900, 738); panel.setLayout(null); final JMenuBar menuBar = new JMenuBar(); menuBar.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));//设置鼠标形状为默认的箭头 setJMenuBar(menuBar); final JMenu menujibencaozuo = new JMenu(); menujibencaozuo.setText("基本操作"); menuBar.add(menujibencaozuo); final JMenuItem newItemMenuItem_1 = new JMenuItem(); newItemMenuItem_1.addActionListener(new ActionListener() { public void actionPerformed(final ActionEvent arg0) { new Kehumain(); } }); newItemMenuItem_1.setText("客户信息"); menujibencaozuo.add(newItemMenuItem_1); final JMenuItem newItemMenuItem = new JMenuItem(); newItemMenuItem.addActionListener(new ActionListener() { public void actionPerformed(final ActionEvent arg0) { new Chanpinmain(); } }); newItemMenuItem.setText("产品信息"); menujibencaozuo.add(newItemMenuItem); final JMenuItem newItemMenuItemxiaoshouxinxi = new JMenuItem(); newItemMenuItemxiaoshouxinxi.addActionListener(new ActionListener() { public void actionPerformed(final ActionEvent arg0) { new Xiaoshoumain(); } }); newItemMenuItemxiaoshouxinxi.setText("销售信息"); menujibencaozuo.add(newItemMenuItemxiaoshouxinxi); final JMenuItem newItemMenuItemshouhouxinxi = new JMenuItem(); newItemMenuItemshouhouxinxi.addActionListener(new ActionListener() { public void actionPerformed(final ActionEvent arg0) { new Main(); } }); newItemMenuItemshouhouxinxi.setText("售后信息"); menujibencaozuo.add(newItemMenuItemshouhouxinxi); final JMenu menugongju = new JMenu(); menugongju.setText("工具"); menuBar.add(menugongju); final JMenuItem newItemMenuItemjisuanqi = new JMenuItem(); newItemMenuItemjisuanqi.setText("计算器"); newItemMenuItemjisuanqi.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { try { Runtime.getRuntime().exec("calc.exe"); //设置运行任何系统可执行的程序----计算器 } catch (IOException e) { e.printStackTrace(); } } }); menugongju.add(newItemMenuItemjisuanqi); final JMenuItem newItemMenuItemjishiben = new JMenuItem(); newItemMenuItemjishiben.setText("记事本"); newItemMenuItemjishiben.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { try { Runtime.getRuntime().exec("notepad.exe"); //设置运行任何系统可执行的程序----记事本 } catch (IOException e) { e.printStackTrace(); } } }); menugongju.add(newItemMenuItemjishiben); final JMenu menu = new JMenu(); menu.setText("密码设置"); menuBar.add(menu); final JMenuItem newItemMenuItem_2 = new JMenuItem(); newItemMenuItem_2.addActionListener(new ActionListener() { public void actionPerformed(final ActionEvent arg0) { // LandAppend ls = new LandAppend(); } }); newItemMenuItem_2.setText("注册管理员"); menu.add(newItemMenuItem_2); final JMenuItem newItemMenuItem_3 = new JMenuItem(); newItemMenuItem_3.addActionListener(new ActionListener() { public void actionPerformed(final ActionEvent arg0) { // PasswordAmend frame = new PasswordAmend(null); } }); newItemMenuItem_3.setText("修改密码"); menu.add(newItemMenuItem_3); final JButton xiaishouxinxi = new JButton(); xiaishouxinxi.addActionListener(new ActionListener() { public void actionPerformed(final ActionEvent arg0) { Xiaoshoumain xsm =new Xiaoshoumain(); } }); xiaishouxinxi.setIcon(SwingResourceManager.getIcon(Zhuyemian.class, "/xiaoshouxinxi.jpg")); xiaishouxinxi.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));//设置鼠标形状为默认的箭头 xiaishouxinxi.setBorder(new EtchedBorder(EtchedBorder.LOWERED)); xiaishouxinxi.setText(""); xiaishouxinxi.setBounds(0, 369, 136, 139); getContentPane().add(xiaishouxinxi); final JButton shouhouxinxi = new JButton(); shouhouxinxi.addActionListener(new ActionListener() { public void actionPerformed(final ActionEvent arg0) { Main mm=new Main(); } }); shouhouxinxi.setIcon(SwingResourceManager.getIcon(Zhuyemian.class, "/shouhouxinxi.jpg")); shouhouxinxi.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));//设置鼠标形状为默认的箭头 shouhouxinxi.setBorder(new EtchedBorder(EtchedBorder.LOWERED)); shouhouxinxi.setText(""); shouhouxinxi.setBounds(0, 537, 136, 139); getContentPane().add(shouhouxinxi); final JButton chanpinxinxi = new JButton(); chanpinxinxi.addActionListener(new ActionListener() { public void actionPerformed(final ActionEvent arg0) { Chanpinmain cpm=new Chanpinmain(); } }); chanpinxinxi.setBounds(0, 202, 136, 134); getContentPane().add(chanpinxinxi); chanpinxinxi.setBorder(new EtchedBorder(EtchedBorder.LOWERED)); chanpinxinxi.setIcon(SwingResourceManager.getIcon(Zhuyemian.class, "/chanpinxinxi.jpg")); chanpinxinxi.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));//设置鼠标形状为默认的箭头 chanpinxinxi.setText(""); final JButton kehuxinxi = new JButton(); kehuxinxi.setBounds(0, 37, 136, 134); getContentPane().add(kehuxinxi); kehuxinxi.addActionListener(new ActionListener() { public void actionPerformed(final ActionEvent arg0) { new Kehumain(); } }); kehuxinxi.setIcon(SwingResourceManager.getIcon(Zhuyemian.class, "/kehuxinxi.jpg")); kehuxinxi.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));//设置鼠标形状为默认的箭头 kehuxinxi.setText(""); this.setCursor(new Cursor(Cursor.HAND_CURSOR));//设置鼠标形状为手型 label = new JLabel(); label.setText(""); label.setBounds(805, 0, 213, 36); getContentPane().add(label); final JToolBar toolBar = new JToolBar(); toolBar.setBounds(2, 1, 1016, 34); getContentPane().add(toolBar); final JButton Bangzhu= new JButton(); toolBar.add(Bangzhu); Bangzhu.setIcon(SwingResourceManager.getIcon(Zhuyemian.class, "/帮助.png")); Bangzhu.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));//设置鼠标形状为默认的箭头 Bangzhu.setText("帮助"); final JButton dayin = new JButton(); toolBar.add(dayin); dayin.setIcon(SwingResourceManager.getIcon(Zhuyemian.class, "/print.png")); dayin.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));//设置鼠标形状为默认的箭头 dayin.setText("打印"); final JButton tuichu = new JButton(); toolBar.add(tuichu); tuichu.addActionListener(new ActionListener() { public void actionPerformed(final ActionEvent arg0) { int aa=JOptionPane.showConfirmDialog(null, "你确认要退出吗?","确定",2); if(aa==JOptionPane.YES_OPTION){ dispose(); } } }); tuichu.setIcon(SwingResourceManager.getIcon(Zhuyemian.class, "/退出.png")); tuichu.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));//设置鼠标形状为默认的箭头 tuichu.setText("退出"); /*******************************************设定窗体的位置(居中)*******************************************/ Toolkit kit=Toolkit.getDefaultToolkit(); Dimension screen=kit.getScreenSize(); int height=screen.height;//当前屏幕高度 int width=screen.width;//当前屏幕宽度 this.setLocation((width-this.getWidth())/2,(height-this.getHeight())/3); this.setVisible(true); //启动多线程 Thread th =new Thread(this); th.start(); } /*******************************************时钟run方法*******************************************/ public void run() { while(true){ Date d =new Date(); SimpleDateFormat sdf =new SimpleDateFormat("yyyy-M-dd hh:mm:ss"); String str =sdf.format(d); label.setText(str); try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public static void main(String[] args) { //改变观感 //org.jvnet.substance.SubstanceLookAndFeel try { UIManager.setLookAndFeel("com.birosoft.liquid.LiquidLookAndFeel"); } catch (Exception e) { e.printStackTrace(); } new Zhuyemian(); } } /******************************************添加背景图片*******************************************/ class MyPanel extends JPanel{ //1.从写这个方法 public void paintComponent(Graphics g) { ImageIcon icon = new ImageIcon("zhujiemian.jpg"); g.drawImage(icon.getImage(), 0, 0, this.getWidth(), this.getHeight(), this); } }

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧