【好文章】JScrollPane JPanel FlowLayout自动换行

2023-12-16 03:58

本文主要是介绍【好文章】JScrollPane JPanel FlowLayout自动换行,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今天上午没什么事儿,打开CSDN的BBS,发现有人在问一个关于布局管理器的问题,请看:关于布局的一个问题 。说实话,开始我并不相信楼主说的这句话“然后我在JPanel外面套了一个JScrollPane,却发现图片会一直往右边加,超出JPanel的宽度则出现横向的滚动条,与预想的效果相差较大。”


于是写下下面的代码:


view plaincopy to clipboardprint?
01.import java.awt.*;  
02.import java.awt.event.*;  
03.import javax.swing.*;  
04. 
05. 
06.public class SimpleTest extends JFrame{  
07.    private ImageIcon image;  
08.    private JLabel label;  
09.    private JButton button;  
10.    private JPanel buttonPanel, imagePanel;  
11.    private JScrollPane scrollPane;  
12.    private Container container;  
13.      
14.    public SimpleTest(int xPixels, int yPixels){  
15.        super("Add Image");   
16.          
17.        button = new JButton("Add Image");  
18.        image = new ImageIcon("C:/1.jpg");  
19.        imagePanel = new JPanel(new FlowLayout(FlowLayout.LEFT, 5, 5));  
20.        scrollPane = new JScrollPane(imagePanel);  
21.              
22.        button.addActionListener(new ActionListener(){  
23.            public void actionPerformed(ActionEvent e){   
24.                label = new JLabel(image);  
25.                imagePanel.add(label);  
26.                validate();  
27.            }  
28.        });  
29. 
30.        buttonPanel = new JPanel(new GridLayout(1, 5));  
31.        buttonPanel.add(button);  
32.          
33.        container = getContentPane();  
34.        container.setLayout(new GridLayout(2, 1));    
35.          
36.        container.add(buttonPanel);  
37.        container.add(scrollPane);  
38.          
39.        setSize(xPixels, yPixels);  
40.        setVisible(true);  
41.    }  
42.      
43.    public static void main(String[] args) {   
44.        new SimpleTest(400, 400);  
45.    }  
46.} 
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;



public class SimpleTest extends JFrame{
 private ImageIcon image;
 private JLabel label;
 private JButton button;
 private JPanel buttonPanel, imagePanel;
 private JScrollPane scrollPane;
 private Container container;
 
 public SimpleTest(int xPixels, int yPixels){
  super("Add Image"); 
  
  button = new JButton("Add Image");
  image = new ImageIcon("C:/1.jpg");
  imagePanel = new JPanel(new FlowLayout(FlowLayout.LEFT, 5, 5));
  scrollPane = new JScrollPane(imagePanel);
   
  button.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent e){ 
    label = new JLabel(image);
    imagePanel.add(label);
    validate();
   }
  });


  buttonPanel = new JPanel(new GridLayout(1, 5));
  buttonPanel.add(button);
  
  container = getContentPane();
  container.setLayout(new GridLayout(2, 1)); 
  
  container.add(buttonPanel);
  container.add(scrollPane);
  
  setSize(xPixels, yPixels);
  setVisible(true);
 }
 
 public static void main(String[] args) {
  new SimpleTest(400, 400);
 }
}
 


输出请看图:


 

这篇关于【好文章】JScrollPane JPanel FlowLayout自动换行的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/499007

相关文章

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

Python3 BeautifulSoup爬虫 POJ自动提交

POJ 提交代码采用Base64加密方式 import http.cookiejarimport loggingimport urllib.parseimport urllib.requestimport base64from bs4 import BeautifulSoupfrom submitcode import SubmitCodeclass SubmitPoj():de

java计算机毕设课设—停车管理信息系统(附源码、文章、相关截图、部署视频)

这是什么系统? 资源获取方式在最下方 java计算机毕设课设—停车管理信息系统(附源码、文章、相关截图、部署视频) 停车管理信息系统是为了提升停车场的运营效率和管理水平而设计的综合性平台。系统涵盖用户信息管理、车位管理、收费管理、违规车辆处理等多个功能模块,旨在实现对停车场资源的高效配置和实时监控。此外,系统还提供了资讯管理和统计查询功能,帮助管理者及时发布信息并进行数据分析,为停车场的科学

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑燃料电池和电解槽虚拟惯量支撑的电力系统优化调度方法》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python

Shell脚本实现自动登录服务器

1.登录脚本 login_server.sh #!/bin/bash# ReferenceLink:https://yq.aliyun.com/articles/516347#show all host infos of serverList.txtif [[ -f ./serverList.txt ]]thenhostNum=`cat ./serverList.txt | wc -l`e

Jenkins 通过 Version Number Plugin 自动生成和管理构建的版本号

步骤 1:安装 Version Number Plugin 登录 Jenkins 的管理界面。进入 “Manage Jenkins” -> “Manage Plugins”。在 “Available” 选项卡中搜索 “Version Number Plugin”。选中并安装插件,完成后可能需要重启 Jenkins。 步骤 2:配置版本号生成 打开项目配置页面。在下方找到 “Build Env

以后写代码都是AI自动写了,Cursor+Claude-3.5-Sonnet,Karpathy 点赞的 AI 代码神器。如何使用详细教程

Cursor 情况简介 AI 大神 Andrej Karpathy 都被震惊了!他最近在试用 VS Code Cursor +Claude Sonnet 3.5,结果发现这玩意儿比 GitHub Copilot 还好用! Cursor 在短短时间内迅速成为程序员群体的顶流神器,其背后的原因在于其默认使用 OpenAI 投资的 Claude-3.5-Sonnet 模型,这一举动不仅改变了代码生成

在 Qt Creator 中,输入 /** 并按下Enter可以自动生成 Doxygen 风格的注释

在 Qt Creator 中,当你输入 /** 时,确实会自动补全标准的 Doxygen 风格注释。这是因为 Qt Creator 支持 Doxygen 以及类似的文档注释风格,并且提供了代码自动补全功能。 以下是如何在 Qt Creator 中使用和显示这些注释标记的步骤: 1. 自动补全 Doxygen 风格注释 在 Qt Creator 中,你可以这样操作: 在你的代码中,将光标放在

Jenkins自动构建部署项目

1. 楔子 在实际开发中,经常需要编译、静态代码检查、自动化测试、打包、部署、启动等一连串重复机械的动作,浪费时间、而且容易出错,而Jenkins就是专门Continuous integration(CI)/ Continuous Deploy(CD)开源工具,本文简单介绍Jenkins的使用。 在线无安装免费试用Jenkins:http://www.jenkins.org.cn/test

【Spring Boot】 SpringBoot自动装配-Condition

目录 一、前言二、 定义2.1 @Conditional2.2 Condition2.2.1 ConditionContext 三、 使用说明3.1 创建项目3.1.1 导入依赖3.1.2 添加配置信息3.1.3 创建User类3.1.4 创建条件实现类3.1.5 修改启动类 3.2 测试3.2.1 当user.enable=false3.2.2 当user.enable=true 3.3