关于JScrollPane在JPanel中的布局改怎么做

这个冬天有点冷灬 2013-09-11 06:00:28
我在JScrollPane中添加了一个JTextArea 可是控制不了他在Panel中出现的位置和大小,setLocation和布局管理器的方法都不行,这个该怎么做到呢??
...全文
513 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ceclinux 2013-09-12
  • 打赏
  • 举报
回复
想改变位置要改布局了
失落夏天 2013-09-12
  • 打赏
  • 举报
回复
你这应该没有设置布局管理器,所以Jframe默认使用默认布局管理器。 你在 jSP.setLayout(null); 设置布局管理器为空, 直接设置控件的位置和大小 JTextArea.setBounds(x, y, width, height);
  • 打赏
  • 举报
回复
引用 6 楼 Cecil_911 的回复:
想改变位置要改布局了
恩,大概应该是一个怎么样的改法呢??
  • 打赏
  • 举报
回复
引用 10 楼 AA5279AA 的回复:
[quote=引用 9 楼 kang2618 的回复:] [quote=引用 8 楼 AA5279AA 的回复:] 你这应该没有设置布局管理器,所以Jframe默认使用默认布局管理器。 你在 jSP.setLayout(null); 设置布局管理器为空, 直接设置控件的位置和大小 JTextArea.setBounds(x, y, width, height);
jSP.setLayout(null);设置为空以后,文本框就出不来了。。[/quote] 怎么可能,我这边显示很正常啊,JSP和taContent 的位置和大小随便放,

class MyPanel extends JPanel{
//    JTextArea taText = new JTextArea(8,2);


    JTextArea taContent = new JTextArea(12,59);
    
    JScrollPane  jSP = new JScrollPane(taContent);
    
    
    Font f = new Font("宋体", Font.BOLD, 20);
     
    public MyPanel(){
    	setLayout(null);
    	
        jSP.setBounds(5, 5, 600, 300);
        jSP.setOpaque(false);
        jSP.getViewport().setOpaque(false);
        jSP.setLocation(7, 7);
        this.add(jSP);
        //taContent.setLocation(100, 200);
        taContent.setLineWrap(true);
        taContent.setOpaque(false);
        taContent.setBackground(Color.blue);
        taContent.setFont(f);
        taContent.setSize(200,200);
        jSP.setLayout(null);
        taContent.setBounds(300,200, 100, 100);
        jSP.add(taContent);
        
    }
}
[/quote]恩 谢谢 大致上ok了 ,谢谢,还有点小问题没解决,回来我再看看。。
失落夏天 2013-09-12
  • 打赏
  • 举报
回复
引用 9 楼 kang2618 的回复:
[quote=引用 8 楼 AA5279AA 的回复:] 你这应该没有设置布局管理器,所以Jframe默认使用默认布局管理器。 你在 jSP.setLayout(null); 设置布局管理器为空, 直接设置控件的位置和大小 JTextArea.setBounds(x, y, width, height);
jSP.setLayout(null);设置为空以后,文本框就出不来了。。[/quote] 怎么可能,我这边显示很正常啊,JSP和taContent 的位置和大小随便放,

class MyPanel extends JPanel{
//    JTextArea taText = new JTextArea(8,2);


    JTextArea taContent = new JTextArea(12,59);
    
    JScrollPane  jSP = new JScrollPane(taContent);
    
    
    Font f = new Font("宋体", Font.BOLD, 20);
     
    public MyPanel(){
    	setLayout(null);
    	
        jSP.setBounds(5, 5, 600, 300);
        jSP.setOpaque(false);
        jSP.getViewport().setOpaque(false);
        jSP.setLocation(7, 7);
        this.add(jSP);
        //taContent.setLocation(100, 200);
        taContent.setLineWrap(true);
        taContent.setOpaque(false);
        taContent.setBackground(Color.blue);
        taContent.setFont(f);
        taContent.setSize(200,200);
        jSP.setLayout(null);
        taContent.setBounds(300,200, 100, 100);
        jSP.add(taContent);
        
    }
}
  • 打赏
  • 举报
回复
引用 8 楼 AA5279AA 的回复:
你这应该没有设置布局管理器,所以Jframe默认使用默认布局管理器。 你在 jSP.setLayout(null); 设置布局管理器为空, 直接设置控件的位置和大小 JTextArea.setBounds(x, y, width, height);
jSP.setLayout(null);设置为空以后,文本框就出不来了。。
ceclinux 2013-09-11
  • 打赏
  • 举报
回复
jSP.setPreferredSize(new Dimension(800,450));
  • 打赏
  • 举报
回复
引用 2 楼 a1006570862 的回复:
setPreferredSize(Dimension preferredSize)设置此组件的首选大小
刚才试了下,确实可以改变大小,但是不能改变位置啊。
  • 打赏
  • 举报
回复
引用 1 楼 Cecil_911 的回复:
贴上代码先。。
这是JPanel部分的

public class MyPanel extends JPanel{
	JTextArea taText = new JTextArea(8,2);
	JTextArea taContent = new JTextArea(12,59);
	JScrollPane  jSP = new JScrollPane(taContent);
	Font f = new Font("宋体", Font.BOLD, 20);
	
	public MyPanel(){
		jSP.setSize(600, 600);
		jSP.setOpaque(false);
		jSP.getViewport().setOpaque(false);
		jSP.setLocation(7, 7);
		this.add(jSP);
		//taContent.setLocation(100, 200);
		taContent.setLineWrap(true);
		taContent.setOpaque(false);
		taContent.setBackground(Color.blue);
		taContent.setFont(f);
		taContent.setSize(200,200);
	}
这是JFrame部分的

public class MyFrame extends JFrame{
	
	JButton jbEnter = new JButton("发送"); 
	
	public MyFrame(String name){
		super(name);
	//	this.setContentPane(new MyPanel());
		this.add(new MyPanel());
		this.setSize(800,450);
		this.setResizable(false);
		
		this.setDefaultCloseOperation(3);
		this.setVisible(true);
	}
}
地下室森林 2013-09-11
  • 打赏
  • 举报
回复
setPreferredSize(Dimension preferredSize)设置此组件的首选大小
ceclinux 2013-09-11
  • 打赏
  • 举报
回复
贴上代码先。。
     目录 第一章 列车车次管理系统需求分析 2 1.1 需求分析和概述 2 1.2 系统分析 2 第二章 数据库的设计 4 2.1 E-R图 4 2.2 表的结构说明 4 第三章 前台主界面的设计 5 3.1主界面概述 5 3.2前台主界面的实现 5 3.3数据库的连接 8 3.4界面事件监听 8 附录 14 第一章 列车车次管理系统需求分析 1.1 需求分析和概述    国地域辽阔,铁路线纵横繁多,给人们的出行带来了极大的方便,但随着火车站客流量的不断增长,越来越多的弊端暴露在人们面前,如:    火车查询效率低下    浪费乘客大量时间    浪费大量人力资源 在这样的情景下更需要良好的系统来管理列车的时间及列车所到车站。      本系统对于指定的列车车次,可以对它的出发时间、到站时间、途经车站等进行添加、修和删除。 1.2 系统分析 本系统是针对管理员对列车车次的管理的开发的,其主要功能是:   1)增加、修、删除一个列车车次信息。   2)按条件显示车次信息(条件有按车次、出发时间、到站时间、途经车站等)。       系统结构图如下 第二章 数据库的设计 2.1 E-R图   这一设计阶段是在系统功能结构图的基础上进行的,设计出能够满足用户需求的各种实体以及它们之间的关系,为后面的逻辑结构设计打下基础。根据以上的分析设计结果,得到列车实体。下面来介绍车次实体的E-R图。 列车实体包括:车次,出发时间,结束时间,途径车站。E-R图如图2.1.1所示。    2.2 表的结构说明   在本系统,。train数据表保存婴儿出生信息,该表的结构如下表 表2.2.1 train表结构 字段名 信息说明 类型 最大字符数 备注 number 列车车次 char 4 主键 starttime 出发时间 char 10 允许为空 endtime 到站时间 char 10 允许为空 via 途经车站 char 10 允许为空 第三章 前台主界面的设计 3.1主界面概述   界面是用户与程序进行交互的接口,用户可以从界面查看程序显示给用户的信息,程序可以从界面获取用户输入的数据。通常用户不会去关心程序的界面是如何实现的,更多的会在意界面提供的信息、功能及界面的布局是否合理。所以在进行界面设计时,不仅要从程序开发的角度上分析,还要考虑到界面的美观及布局。   本系统前台主界面的运行效果如图4.1所示。    前台主界面效果图 3.2前台主界面的实现 为了方便的实现查询功能,在jtable里面显示数据库信息,主界面里自定义了CreateTable类。 class CreateTable{ public Vector vector = null; public AbstractTableModel tm = null; public JScrollPane scroll; public String[] title;//表格表头 public CreateTable(String[] head) { JTable table; title=(String[])head.clone(); vector = new Vector(); tm = new AbstractTableModel() { //通过重写table来定义自己的表格模式 public int getColumnCount() { return title.length; } public int getRowCount() { return vector.size(); } public Object getValueAt(int row, int column) { if (!vector.isEmpty()) { return ((Vector) vector.elementAt(row)).elementAt(column); } else { return null; } } public void setValueAt(Object value, int row, int column) { } public String getColumnName(int column) { return title[column]; } public Class getColumnClass(int c) {
java编写的计算器,能实现加减乘除。 //***该梦幻计算器与Windows附件自带计算器的标准版功能、界面相仿***// //******但还不支持键盘操作,如有需要,下一次等级将满足你**********// import java.awt.*; import java.lang.*; import javax.swing.*; import javax.swing.event.*; import java.awt.event.*; import java.awt.Component.*; import java.awt.color.*; import java.text.DecimalFormat; //*****************************************************************************// //*****************************************************************************// public class Calculator implements ActionListener //导入动作监听接口 { //******************************// //*****设计计算器界面的单位*****// JFrame frame; //定义框架 JTextField textAnswer; //定义输出显示框 JPanel panel, panel1, panel2, panel3;//定义面板作为子容器,从而达到要求的界面效果 JMenuBar mainMenu; JTextField textMemory; JLabel labelMemSpace; //labelMemSpace单纯摆设,控制面板的形状 JButton buttonBk, buttonCe, buttonC; JButton button[]; JButton buttonMC, buttonMR, buttonMS, buttonMAdd; JButton buttonDot, buttonAddAndSub, buttonAdd, buttonSub, buttonMul,buttonDiv, buttonMod; JButton buttonSqrt, buttonDao, buttonEqual; JMenu editMenu, viewMenu, helpMenu; JMenuItem copyItem, pasteItem, tItem, sItem, numberGroup, topHelp, aboutCal,myCollege; DecimalFormat df; //设置数据输出精度 boolean clickable; //控制当前能否按键 double memoryd; //使用内存存储的数字 int memoryi; double vard, answerd; //用来保存double型数据的间值(vard)和最后结果(answerd) short key = -1, prekey = -1; //key用来保存当前进行何种运算,prekey用来保存前次进行何种运算 boolean clear = false; String copy; //复制用 JTextArea help; //帮助 JScrollPane scrollHelp; static boolean One =true; //******************// //*****构造函数开始*****// public Calculator() { clickable = true; answerd = 0; frame = new JFrame("梦幻计算器--SWE08008"); frame.setResizable(false);//不允许变计算器的大小 frame.setLocation(250,150);//设置计算器的起始位置 frame.setBackground(Color.YELLOW); df = new DecimalFormat("0.##############"); //设置数据输出精度(对于double型值)

62,614

社区成员

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

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