• awt/swing知识积累


    1、如果你用BorderLayout布局来装表格,无论你是否设置表格大小,表格都会将整个Panel占满,所以需要用FlowLayout布局来处理!

    2、对于一个窗口JDialog窗口中,出现多条滚动条的问题。

      出现这种情况的原因     JDialog --- >  AllPanel(加滚动条) ---->Panel(加滚动条)     

      这样就相当于加了两条滚动条。为什么当时会加上两条滚动条呢?

      因为如果AllPanel不加上滚动条,整个窗口会只显示一部分,没有把Panel的内容全部显示出来。

      那如何只显示一条滚动呢,其实道理很简单,就是整个Dialog,只有一个地方是加滚动条的

        1、就是让 JDialog --- >  AllPanel(加滚动条) ---->Panel

        2、直接把布局改成JDialog  ---》 Panel(加滚动条)    

    3、有一种方式重画面板

        panel.remove(1);

        panel.remove(1);

        //中间代码省略

        projectWeeklyPanel.validate();

        projectWeeklyPanel.repaint();

      但这种方式,界面并不会实时更新,断点运行就可以,但添加延时也没有效果。

      后面把projectWeeklyPanel.validate(),projectWeeklyPanel.repaint()换成projectWeeklyPanel.revalidate()就可以了。

         *** 在使用repaint()重绘的过程中,有的时候会出现面板的更新不及时,更新出来的面板有空缺。如果你这是的面板是一个Tab页,你可以不用使用repaint()重绘,切换到另一个tab页,

        再切换回来就可以了。所以如果使用table页切换的方式来更新页面,就能保证页面刷新不会卡顿和内容缺失了

     4、Window是Frame和JDialog的父类

    5、JTextArea如果直接放到面板,会显示没空白,要套一层滚动条new JScrollPane(itexeArea)

    6、JTable,只能选中整行(不是只能选中一行),不显示选中单元格

      table.setCellSelectionEnabled(false);

      table.setRowSelectionAllowed(true);

    7、final TableRowSorter sorter = (TableRowSorter) table.getRowSorter();   表格过滤,如果列的内容包含“ )”空格+括号,会出现过滤不了的情况

    8,JTable停止编辑后,页面才会更新。有有时在表格中checkBox.setSelected(true);没有效果,这时你停止表格的编辑事件,就会有效果了

    9、JTable的单元格渲染分为TableCellRenderer查看渲染,TableCellEditor编辑渲染

    10、TableModelListener的事件类型

          TableModelEvent.INSERT:新行或新列的添加;TableModelEvent.INSERT:新行或新列的添加;TableModelEvent.UPDATE:现有数据的更改

    11、JTextField的tirm()方法会把空格给去除,如果输入空格,你得到的时候“”;

    12、使用JList.updateUI(),不要在事件里面多开一个线程,不然面板的刷新会有问题 

    13、更新面板显示不要用JPanel.repaint();这些方法,直接用JPanel.UpdateUI()就可以了。

    14、ItemListener的itemStateChanged执行,并不是下拉框空间,窗口完成赋完值后就会执行,要弹出框全部绘制完,显示后,才会执行

    15、JTextArea设置大小textArea.setRows(5),textArea.setColumns(15)

    16、JTextField设置宽度:iTextField.setColumns(20);

    17、JDialog(Frame owner, String title, boolean modal),JDialog的modal参数,其作用是,如果是true,则JDialog.setVisible(true)的时候,线程会阻塞。为false,则不会阻塞

    18、JTable不能选中单元格,JTable.setCellSelectionEnabled(false);

    19、JTable只能选中单行

      JTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

           JTable.getTableHeader().setReorderingAllowed(false);

  • 相关阅读:
    Codeforces Round #578 (Div. 2) 训练总结及题解
    docker
    使用java遍历Map集合的方式
    SpringCloud集成rabbitmq:org.springframework.amqp.AmqpConnectException: java.net.ConnectException的解决办法
    创建新Docker容器时出现“The container name "/xxx" is already in use by container xxxxxxxxxxx...”问题的解决办法
    springBoot 项目中,使用定时任务报错
    java获取当前日期和前一周、前一月、前一年的日期
    用户行为PV&UV
    使用IDEA开发,多模块依赖中,找不到依赖: 程序包xxx.xxx.xxx不存在的问题
    Java获取本地IP地址和主机名
  • 原文地址:https://www.cnblogs.com/wwssgg/p/15624805.html
Copyright © 2020-2023  润新知