| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 741 人关注过本帖
标题:图形界面设计,布局方面有点问题,会的帮忙看下
只看楼主 加入收藏
gxq0013
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2013-1-20
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:10 
图形界面设计,布局方面有点问题,会的帮忙看下
import javax.swing.*;
import java.awt.FlowLayout;

class MyFrame extends JFrame{
    private JPanel contentPane;
    private JLabel lab1,lab2,lab3;
    private JTextField tf;
    private JPasswordField pwf;
    private JTextArea ta;
   
    MyFrame (String s){
        super(s);
        setSize(300,300);
        setLocationRelativeTo(null);
        
        contentPane=new JPanel();
        setContentPane(contentPane);
        FlowLayout fLayout=new FlowLayout();
        
        lab1=new JLabel("账号");
        tf=new JTextField(15);
        lab2=new JLabel("密码");
        pwf=new JPasswordField(15);
        lab3=new JLabel("发言");
        ta=new JTextArea(10,15);
        
        contentPane.add(lab1);
        contentPane.add(tf);
        contentPane.add(lab2);
        contentPane.add(pwf);
        contentPane.add(lab3);
        contentPane.add(ta);
        
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }
}
public class TextFieldDemo {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
            MyFrame frm=new MyFrame("文本输入组件演示");
    }

}

程序能运行,运行后结果杂乱排布着,就想,在不改变setsize()的大小的情况下,用布局的方法,使她对齐,该怎么改
搜索更多相关主题的帖子: 界面设计 图形 private import super 
2013-01-23 16:33
清微御宇
Rank: 6Rank: 6
来 自:开封
等 级:侠之大者
威 望:2
帖 子:318
专家分:497
注 册:2012-1-15
收藏
得分:7 
contentPane=new JPanel();
jpanle默认的是流式布局管理,你把所有的东西都加到contentPane里肯定堆到一起了,建议把低层容器设置为网孔布局(3行一列),每行加入一个非顶层容器jpanle,每个非顶层容器中加入你的一个标签和对应的文本框或密码框之类的东东应该就可以了!

Stay hungry , Stay foolish!
2013-01-23 17:00
gxq0013
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2013-1-20
收藏
得分:0 
回复 2楼 清微御宇
我理解contentPane 跟 jpanle 是contentPane 作为一个大的,总的面板,而jpanle是一个小的面板,写程序的时候,是将contentPane作为底层大面板,然后在上面添加jpanle这些小面板,按照你说的网孔布局,是不是就是意思将contentPane这个大面板先分成几块,然后再在各个几块中各用各的面板,像上面那一题,就直接分成三个小面板来写?
2013-01-23 17:14
清微御宇
Rank: 6Rank: 6
来 自:开封
等 级:侠之大者
威 望:2
帖 子:318
专家分:497
注 册:2012-1-15
收藏
得分:0 
回复 3楼 gxq0013
嗯,是的,你写试试,跑跑看看效果吧!你用什么开发工具?

Stay hungry , Stay foolish!
2013-01-23 17:26
gxq0013
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2013-1-20
收藏
得分:0 
回复 4楼 清微御宇
额,暂时跑不了,我现在正在写其他的代码,估计要迟点才会弄, 那个, 用地JDK1.7  ,用eclipse写的
2013-01-23 17:31
gxq0013
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2013-1-20
收藏
得分:0 
回复 5楼 gxq0013
对哦,要先谢谢你的帮忙,   我那还有一道题 , 如果有时间的话,也请帮我看看怎么解的呢
2013-01-23 17:32
付政委
该用户已被删除
收藏
得分:3 
提示: 作者被禁止或删除 内容自动屏蔽
2013-01-23 17:36
gxq0013
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2013-1-20
收藏
得分:0 
回复 7楼 付政委
  ,名字霸气,说话也霸气,  = =!  让我们这初学者汗颜啊~ , 那请多多指教啊
2013-01-23 17:39
gxq0013
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2013-1-20
收藏
得分:0 
回复 2楼 清微御宇
import javax.swing.*;
import java.awt.GridLayout;
 
class MyFrame extends JFrame{
     private JPanel contentPane,jpanel1,jpanel2,jpanel3;
     private JLabel lab1,lab2,lab3;
     private JTextField tf;
     private JPasswordField pwf;
     private JTextArea ta;
     
    MyFrame (String s){
         super(s);
         setSize(300,300);
         setLocationRelativeTo(null);
         
         contentPane=new JPanel();
         setContentPane(contentPane);
         GridLayout GLayout=new GridLayout(3,1);
         contentPane.setLayout(GLayout);
         
         jpanel1=new JPanel();
         lab1=new JLabel("账号");
         tf=new JTextField(15);
         jpanel2=new JPanel();
         lab2=new JLabel("密码");
         pwf=new JPasswordField(15);
         jpanel3=new JPanel();
         lab3=new JLabel("发言");
         ta=new JTextArea(10,15);
         
         jpanel1.add(lab1);
         jpanel1.add(tf);
         contentPane.add(jpanel1);
         jpanel2.add(lab2);
         jpanel2.add(pwf);
         contentPane.add(jpanel2);
         jpanel3.add(lab3);
         jpanel3.add(ta);
         contentPane.add(jpanel3);
         
         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         setVisible(true);
     }
 }
 public class NewTextField {
 
    /**
      * @param args
      */
     public static void main(String[] args) {
         // TODO Auto-generated method stub
             MyFrame frm=new MyFrame("文本输入组件演示");
     }
 
}


这是按照你那想法改写的,依然能运行,但结果都还是一样 ,看看是我哪里写错了?还是怎么了?
2013-01-24 13:23
付政委
该用户已被删除
收藏
得分:0 
回复 8楼 gxq0013
提示: 作者被禁止或删除 内容自动屏蔽
2013-01-24 14:30
快速回复:图形界面设计,布局方面有点问题,会的帮忙看下
数据加载中...
 
   



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

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