首页
学习
活动
专区
圈层
工具
发布

Java编程之GUI教程 JPanel面板和JScrollPane

与顶层容器不同的是,面板不能独立存在,必须被添加到其他容器内部。在进行界面设计时,通常将用户界面划分成若干个区域,每个区域用一个面板。这样处理的好处是:将窗口内容结构化,有利于管理、更换、调试。...例12-3运行结果 图12.5中,运行程序结果,先创建了JFrame窗体,然后设置布局,创建一个容器JPanel,最后将中间容器添加进JFrame窗体。...如果需要在JScrollPane面板中放置多个组件,需要先将多个组件放置在JPanel面板容器上,然后将JPanel面板作为一个整体组件添加到JScrollPane面板中。...JScrollPane类的常见方法 常见方法 功能描述 public JScrollPane() 创建一个空的JScrollPane,水平和垂直滚动条都是可选项。...jf = new JFrame("JFrame窗口"); 5 JPanel contentPane=new JPanel();; 6 JScrollPane jPanel

84310
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Java AWT 图形界面编程】Canvas 中绘制超大图片 ( 使用鼠标拖动查看全图 | 设置 JFrame 窗口自动关闭 | 获取并绘制图片 | 鼠标拖动计算位移 | 画布偏移 )

    一、Canvas 中绘制超大图片要点 ---- 1、设置 JFrame 窗口自动关闭 创建 JFrame 窗口后 , 通过调用 JFrame#setDefaultCloseOperation 可以设置窗口自动关闭...Image image = Toolkit.getDefaultToolkit().getImage("image.jpg"); 调用 Graphics#drawImage 函数 , 向...startX , startY ) 坐标中 ; 计算一个 Canvas 的画布偏移量 ( offsetX , offsetY ) , 该偏移量持续累加 , 多次鼠标拖动也会累加到一起 ; // 添加鼠标动作监听...startX = e.getX(); startY = e.getY(); } }); // 添加鼠标动作监听...LargeCanvas(); // 将画布放入滚动布局 JScrollPane scrollPane = new JScrollPane(canvas);

    1.8K20

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

    ,就需要首先将控件布局在JPanel面板中,之后将JPanel面板作为一个整体组件添加到JScrollPane面板中, 通过下面程序对JScrollPane面板进行实践: 以下程序是在JScrollPane...public class JScrollPaneClass extends JFrame{ public JScrollPaneClass() { setTitle("JScrollPane面板...面板中添加一个文本框******************/ JTextArea jTextArea = new JTextArea(); JScrollPane jsp = new JScrollPane...以上三个值被赋予以后,表示组件在流布局管理器中每一行的摆放位置和摆放顺序,如当alignment=0时,流布局管理器中的组件按照从左到右的顺序排列,当alignment=1时,流布局管理器中的组件按照从中间向两端的顺序排列...关于流布局管理器的具体使用可以参考如下实例: 在该窗体中按照流布局管理器添加10个按钮 public class FlowLayoutClass extends JFrame{ public FlowLayoutClass

    3.5K10

    Java实现简易即时通讯系统

    friend_username>服务器回复:ADD_FRIEND_SUCCESS: 或 ADD_FRIEND_FAILURE:同时,如果对方在线,服务器会向对方发送一个通知...*;public class QQClient extends JFrame { private JTextField usernameField, passwordField, friendField...) { JScrollPane scrollPane = (JScrollPane) comp;..."双击好友列表中的用户名打开聊天窗口在聊天窗口中输入消息并点击"发送"扩展建议增强安全性:密码加密存储添加SSL/TLS加密通信功能扩展:添加群聊功能支持文件传输添加离线消息存储实现消息历史记录界面优化...:添加好友分组功能实现消息提醒声音添加表情符号支持性能优化:使用线程池管理连接添加数据库支持实现负载均衡这个即时通讯系统实现了类似QQ的核心功能,包括用户注册登录、好友管理、实时聊天等。

    16300

    Java---基于TCP协议的相互即时通讯小程序

    , 3)把其他在线用户的userName通知当前用户 4)开启一个线程专门为当前线程服务 (2)退出(注销): (3)发送消息 ※※发送通讯内容之后,对方如何知道是干什么,通过消息协议来实现: 客户端向服务器发的消息格式设计...null@#userName 3)发送: on @# JList.getSelectedValue() @# tfdMsg.getText() @# tfdUserName.getText() 服务器向客户端发的消息格式设计...(area), BorderLayout.CENTER); this.getContentPane().add(p); // 添加菜单项 JMenuBar...当前用户登录的消息即用户名”通知给所有其他已经在线的人 * * @param userName */ // 技术思路:从池中依次把每个socket(代表每个在线用户)取出,向它发送...new PrintWriter(clientSocket.getOutputStream(), true);// 加上自动刷新 pw.println(userName);// 向服务器报上自己的用户名

    1.9K10

    java Swing GUI 入门-文件读写器

    ); }//end main 精细化窗口 需要使用Contariner容器向其中添加组件 容器Container是一个类,实际上是Component的子类,因此容器本身也是一个组件,具有组件的所有性质...其实就是获取内容面板,JFrame无法直接添加组件需要getContentPane()获取面板,然后再内容面板上添加组件。...中添加元素,其中this指针指向的就是这个JFrame 关于边界布局方法具体参考: https://xuzhiwei.blog.csdn.net/article/details/111302347...//向Jframe类型的对象中添加一个布局并且添加组件 //边界布局具体参考博客 // https://xuzhiwei.blog.csdn.net/article...Jpanel this.getContentPane().add(new JScrollPane(textArea));//添加一个滑动控件 this.getContentPane

    83210
    领券