jscrollpane

超详细的Java容器、面板及四大布局管理器应用讲解!

落花浮王杯 提交于 2020-08-18 07:31:21
本文主要讲解Swing程序设计中容器、面板及四大布局管理器的详细使用、包括实例程序讲解、使用注意及使用技巧分享、敬请阅读! 目录 什么是容器? 什么是面板? JPanel面板 JScrollPane面板 什么是布局管理器? 绝对布局管理器 流布局管理器 边界布局管理 网格布局管理器 容器、面板、布局管理器之间的关系 Hello!你好哇,我是灰小猿! 之前在进行Java的窗体开发时经常会把容器、面板与布局管理混淆,从而不能正确的使用这三种属性对窗体应用进行布局。所以今天在这里记录一下Java窗体中容器、面板及常见的四大布局管理器的用法。 什么是容器? 在Java的GUI界面设计中,关于容器的理解,从字面意思我们就可以认为它是存放控件的地方,而这个地方依托在窗体之上,常用的容器是container。 而关于container容器我们应该有这样的认识: Swing组件中的窗体通常是与容器相关联的,所以在一般情况下,建立完JFrame窗体后,我们会调用getContentPane()方法将窗体转换为容器,之后再在该容器中添加控件或布局管理器。关于控件在container容器中添加和删除用以下两种方法: Container.add(); //为容器添加控件 Container.remove(); //为容器添加控件 实例程序如下: public class ConJFrame extends

Java Object-Oriented:day11 【 红包案例】

元气小坏坏 提交于 2020-08-11 19:44:46
一、案例分析 1、场景说明: 红包发出去之后,所有人都有红包,大家抢完了之后,最后一个红包给群主自己。大多数代码都是现成的,我们需要做的就是填空题。 2、我们自己要做的事情有: 1. 设置一下程序的标题,通过构造方法的字符串参数 2. 设置群主名称 3. 设置分发策略:平均,还是随机? 3、红包分发的策略: 1. 普通红包(平均):totalMoney / totalCount,余数放在最后一个红包当中。 2. 手气红包(随机):最少1分钱,最多不超过平均数的2倍。应该越发越少 二、普通红包实现 1、实现代码 Bootstrap package day11.demo08; import day11.red.OpenMode; /* 场景说明: 红包发出去之后,所有人都有红包,大家抢完了之后,最后一个红包给群主自己。 大多数代码都是现成的,我们需要做的就是填空题。 我们自己要做的事情有: 1. 设置一下程序的标题,通过构造方法的字符串参数 2. 设置群主名称 3. 设置分发策略:平均,还是随机? 红包分发的策略: 1. 普通红包(平均):totalMoney / totalCount,余数放在最后一个红包当中。 2. 手气红包(随机):最少1分钱,最多不超过平均数的2倍。应该越发越少。 */ public class Bootstrap { public static void

Java装饰模式

孤街醉人 提交于 2020-07-29 10:53:56
你在山上看风景,看风景的人在山上看你。明月装饰了你的窗子,你装饰了别人的梦。 装饰器模式(Decorator Pattern) ,别名又叫 包装者模式(wapper) ,允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装,不同于代理。 这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。 介绍 意图: 动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活。 主要解决: 一般我们为了扩展一个类经常使用继承方式实现,由于继承为类引入静态特征,并且随着扩展功能的增多,子类会很膨胀。 何时使用: 在不想增加很多子类的情况下扩展类。 如何解决: 将具体功能职责划分,同时继承装饰者模式。 关键代码: 1、Component 类充当抽象角色,不应该具体实现。 2、修饰类引用和继承 Component 类,具体扩展类重写父类方法。 优点: 装饰类和被装饰类可以独立发展,不会相互耦合,装饰模式是继承的一个替代模式,装饰模式可以动态扩展一个实现类的功能。 缺点: 多层装饰比较复杂。 使用场景: 1、扩展一个类的功能。 2、动态增加功能,动态撤销。 注意事项: 可代替继承。 结构图 ​ 参与者: Component:定义一个对象接口,可以给这些对象动态的添加职责

Container not displaying in JScrollPane

大兔子大兔子 提交于 2020-06-29 03:42:17
问题 I have a JScrollPane that will fill up with buttons added by the user. Currently, the user creates a new button and it is added to the container that is inside the scroll pane but nothing is displayed. Is this because the scroll pane has already been displayed? Initiating the scroll pane and container: newHeading.addActionListener(this); newHeading.setActionCommand("newHeading"); contractContainer.setLayout(new BoxLayout(contractContainer, BoxLayout.Y_AXIS)); scrollPane

Container not displaying in JScrollPane

馋奶兔 提交于 2020-06-29 03:41:34
问题 I have a JScrollPane that will fill up with buttons added by the user. Currently, the user creates a new button and it is added to the container that is inside the scroll pane but nothing is displayed. Is this because the scroll pane has already been displayed? Initiating the scroll pane and container: newHeading.addActionListener(this); newHeading.setActionCommand("newHeading"); contractContainer.setLayout(new BoxLayout(contractContainer, BoxLayout.Y_AXIS)); scrollPane

Swing - JScollArea in GridBagLayout collapses when resizing

时光毁灭记忆、已成空白 提交于 2020-06-17 10:25:32
问题 I'm writing an "image viewer" app with a central area containing the image, plus toolbars etc. around it. I selected a GridBagLayout for the flexibility I need, but as soon as the main window is reduced, instead of having scrollbars appearing around the image, the whole scrollpane collapses to a 0x0px area. Please find below a minimal code to illustrate this. Try leaving the dimensions at 500x500 and reducing the window by a few pixels by dragging one of its corners inwards: import javax

Java 图形化界面设计(GUI)实战练习(代码)

末鹿安然 提交于 2020-05-05 12:01:40
关于Java图形化界面设计,基础知识网上可搜,下面简单介绍一下重点概念,然后就由浅入深代码实例。 程序是为了方便用户使用的,Java引入图形化界面编程。 1.JFrame 是容器类 2.AWT 是抽象窗口组件工具包,是 Java 最早的用于编写图形节目应用程序的开发包。 3.Swing 是为了解决 AWT 存在的问题而新开发的包,它以 AWT 为基础的。 代码实例1: package com.zhouzhou; // 练习网格布局 import java.awt.* ; import javax.swing.* ; public class Demo9 extends JFrame { // 定义组件 int size = 9 ; JButton jbs[] = new JButton[size]; public static void main(String[] args) { // 创建实例 Demo9 de = new Demo9(); } // 构造函数 public Demo9() { // 创建组件 for ( int i = 0; i < size; i++ ) { jbs[i] = new JButton(String.valueOf(i)); } // 设置网格布局,这里只有前两个参数(行/列)3和3 的话,网格没有空隙 this .setLayout( new

How to implement graphics to JScrollPane?

牧云@^-^@ 提交于 2020-04-30 03:51:59
问题 The objective is to draw a couple hundred thousand vertical lines to a window, for which reason I need a scroll bar, zooming out is not an option as the space separating each individual line is not even a pixel. I have taken the approach of using paint methods in a class and adding both the class and JScrollPane to a JFrame. Didn't work out which is why I took the approach of using the NetBeans JFrame Form. Basically, how do I implement my graphics method into the panel that has the scroll

How to implement graphics to JScrollPane?

老子叫甜甜 提交于 2020-04-30 03:51:07
问题 The objective is to draw a couple hundred thousand vertical lines to a window, for which reason I need a scroll bar, zooming out is not an option as the space separating each individual line is not even a pixel. I have taken the approach of using paint methods in a class and adding both the class and JScrollPane to a JFrame. Didn't work out which is why I took the approach of using the NetBeans JFrame Form. Basically, how do I implement my graphics method into the panel that has the scroll

JScrollPane is not Working in JPanel

折月煮酒 提交于 2020-01-30 08:25:13
问题 I have to use JScrollPane in my Project but it is not working. I have pasted my code where I use a JSCrollPane in my main JPanel. frame = new JFrame(); frame.setBounds(100, 100, 1179, 733); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().setLayout(null); JScrollPane scrollPane_1 = new JScrollPane(); scrollPane_1.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); scrollPane_1.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL