java JTabbedPane 上下两层,第二层大小设置不了

java JTabbedPane 上下两层,第二层大小设置不了,第1张

private static JTabbedPane createTabs() {

   JTabbedPane tabParent = new JTabbedPane()

   JTabbedPane tabSub1 = new JTabbedPane()

   tabSub1.add("11", new JScrollPane(new JTextArea("11")))

   tabSub1.add("12", new JScrollPane(new JTextArea("12")))

   tabSub1.add("13", new JScrollPane(new JTextArea("13")))

   tabParent.add("1", tabSub1)

   tabParent.add("2", new JScrollPane(new JTextArea("2")))

   tabParent.add("3", new JScrollPane(new JTextArea("3")))

   return tabParent

}

//去掉框架的布局管理器

Jf.setLayout(null)

//手动设置标签面板的位置与宽高

JTabbedPane_Title.setBounds(0,50,600,150)。

如在有布局的情况下,在JTabbedPane上方放一个高度为50的Panel或菜单栏。

JTabbedPane的使用:

类层次结构图:

java.lang.Object

--java.awt.Component

--java.awt.Container

--javax.swing.JComponent

--javax.swing.JTabbedPane

JTabbedPane构造函数:

JTabbedPane():建立一个空的JTabbedPane对象。

JTabbedPane(int tabPlacement):建立一个空的JTabbedPane对象,并指定摆放位置,如TOP,BOTTOM,LEFT,RIGHT.

JTabbedPane的事件处理模式:

JTabbedPane以处理ChangeEvent事件为主。每当在JTabbedpane选换标签时,都会产生ChangeEvent事件。因此要处理选换标签所

对应的 *** 作,必须实现ChangeListener这个interface.另外JTabbedPane上的每个标签都有索引值(index),一般若没有加以设置

,索引置从左到右依次是0,1,2.....,依此类推,因此下例中,Picture的索引值为0,Label 2的索引值为1。

一个标签都有所对应的 *** 作。

首先指出你代码的问题:

1. 没有main方法;

2. 类名小写开头;

3. 未引入包(也许是你漏了,但应该给出完整代码);

4. 大括号少一个(估计是只copy了中间一段代码);

5. 主类既然声明实现了ActionListener,就应该实现其actionPerformed方法(也许是copy漏掉了吧);

6. 主类未设置setVisible(true),导致运行后无窗口显示;

7. 其它……

*****************************************************************

********

**问题**

********

在修改以上错误之后,入正题,你提出了两个要求:

1. 调整JScrollPane的大小;

2. 让两个表格上下摆放。

*****************************************************************

***********

**解决办法**

***********

1. 使用JScrollPane的setPreferredSize方法来设置大小;

2. 将放置两个JScrollPane的JPanel(代码中的jp2_2_2)布局设置为GridLayout(2, 1)。

*****************************************************************

**********************

**具体代码(已加注释)**

**********************

import java.awt.BorderLayout

import java.awt.Dimension

import java.awt.FlowLayout

import java.awt.GridLayout

import java.awt.event.ActionEvent

import java.awt.event.ActionListener

import javax.swing.JButton

import javax.swing.JFrame

import javax.swing.JLabel

import javax.swing.JPanel

import javax.swing.JScrollPane

import javax.swing.JTabbedPane

import javax.swing.JTable

import javax.swing.border.TitledBorder

public class Yezx extends JFrame implements ActionListener {

JLabel lb1 = new JLabel("欢迎使用学生学习生活小助手")

JTabbedPane tab1 = new JTabbedPane()

JButton bt2_1 = new JButton("添加")

JButton bt2_2 = new JButton("修改")

JButton bt2_3 = new JButton("查询")

JButton bt2_4 = new JButton("删除")

JButton bt3 = new JButton("返回主界面")

String[] col2 = { "日程类型", "开始时间", "结束时间", "内容", "备注" }

String row2[][] = new String[12][5]

JTable table2 = new JTable(row2, col2)

JScrollPane jsp2 = new JScrollPane(table2)

String[] col3 = { "日程类型", "开始时间", "结束时间", "内容", "备注" }

String row3[][] = new String[12][5]

JTable table3 = new JTable(row3, col3)

JScrollPane jsp3 = new JScrollPane(table3)

public Yezx() {

JPanel jp = (JPanel) this.getContentPane()

JPanel jp1 = new JPanel()

JPanel jp2 = new JPanel()

JPanel jp2_2 = new JPanel()

JPanel jp2_2_1 = new JPanel()

JPanel jp2_2_2 = new JPanel()

jp1.add(lb1)

jp1.add(bt3)

jp1.setBorder(new TitledBorder(""))

GridLayout gl2 = new GridLayout(5, 1)

gl2.setVgap(20)

// 设置JScrollPane的大小

jsp2.setPreferredSize(new Dimension(500, 200))

jsp3.setPreferredSize(new Dimension(500, 200))

// 设置网格布局

jp2_2_2.setLayout(new GridLayout(2, 1))

jp2_2_2.add(jsp2)

jp2_2_2.add(jsp3)

//

jp2_2_1.setLayout(gl2)

jp2_2_1.add(bt2_1)

jp2_2_1.add(bt2_2)

jp2_2_1.add(bt2_3)

jp2_2_1.add(bt2_4)

jp2_2.add(jp2_2_2)

jp2_2.add(jp2_2_1)

bt2_1.addActionListener(this)

bt2_2.addActionListener(this)

bt2_3.addActionListener(this)

bt2_4.addActionListener(this)

jp2.setLayout(new FlowLayout())

tab1.addTab("银行明细", jp2_2)

jp2.add(tab1)

jp.setLayout(new BorderLayout())

jp.add(jp1, BorderLayout.NORTH)

jp.add(jp2, BorderLayout.CENTER)

this.pack()

this.setResizable(false)

this.setVisible(true)

this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE)

}

public void actionPerformed(ActionEvent e) {

}

public static void main(String[] args) {

new Yezx()

}

}

*****************************************************************

***********

**运行结果**

***********


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11344762.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存