精华内容
下载资源
问答
  • 如题,ssm框架 table 里面的数据需要实时刷新 数据大概两三秒会变化一次, 有没有比较高效的方法去实现,除了ajax每隔3s调用后台还有其他更优的方法吗
  • Java Swing JComboBox 数据刷新

    千次阅读 2019-05-12 15:55:51
    相关源码 可见:setModel...Java GUI编程中,按照历史进度:AWT -> Swing -> SWT。 在Swing编程中,JComboBox为下拉列表插件。 use JComboBox有两种方式传入数据。 - Vector<T> - E[] 我遇到的...

    相关源码

    在这里插入图片描述
    在这里插入图片描述
    可见:setModel(ComboBoxModel<T>)方法可以更新该插件的数据。
    以下为出错和解决流程:

    intro

    Java GUI编程中,按照历史进度:AWT -> Swing -> SWT
    Swing编程中,JComboBox为下拉列表插件。

    use

    JComboBox有两种方式传入数据。
    - Vector<T>
    - E[]

    我遇到的问题如下:
    当更改yearmonth下拉列表选项后,需要更新下拉列表day的可选值。

    class MyFrame extends JFrame implements ActionListener {
        Integer[] dayArr;
        JComboBox dayBox;
    
    
        MyFrame() {
            dayArr =  = new Integer[] {1, 2, 3, 4, 5};     // 任意数据
            dayBox = new JBomboBox(dayArr);
            this.add(dayBox);
            // ...
        }
    
        @Override
        public void actionPerformed(ActionEvent e) {
            Object source = e.getSource();
            if (source == yearBox || source == monthBox) {
                // ...
                // 修改dayBox的可选值|数据
            }
        }
    }
    

    以下三种修改,只有第三种有效。

    • 修改1: 直接修改dayArr数组
      但并无效果,因为dayBox已经设置过dayArr的数据为自身数据,这之后再修改dayArr的数据,并不会影响到dayBox已有的数据。。
    dayArr = new Integer[] {.....}
    
    • 修改2:移除已有的JComboBox组件,重新设置数据,重新添加一次。
    this.remove(dayBox);
    dayArr = 新数据;
    this.add(new JComboBox(dayArr));
    

    但事后,新添加的JComboBox组件无法被触发刷新。

    • 修改3:setModel(ComboBoxModel<E>)方法。
      查看源码中构造方法JComboBox(E[])的内部实现流程。
    /**
    * Creates a <code>JComboBox</code> that contains the elements
    * in the specified array.  By default the first item in the array
    * (and therefore the data model) becomes selected.
    *
    * @param items  an array of objects to insert into the combo box
    * @see DefaultComboBoxModel
    */
    public JComboBox(E[] items) {
        super();
        setModel(new DefaultComboBoxModel<E>(items));
        init();
    }
    

    所以修改如下:

    dayArr = 新数据;
    dayBox.setModel(new DefaultComboBoxModel(dayArr));
    

    达到了重新刷新JComboBox插件数据的效果。

    之前重新设置dayArr的方法,之所以无效,是因为他只是重新设置dayArr
    JComboBox数据的更新必须要通过setModel,重设数据模型为新的dayArr

    展开全文
  • Java 中JTable 数据刷新问题

    千次阅读 2014-05-08 12:12:23
    位于JPanel 中的JTable 必须构造JScrollPane js=new JScrollPane(table)才能显示列标题 ...数据刷新可以用再次从数据源再次拿到新数据,然后调用js.setViewportView(table)即可,刷新数据就可以啦。

    位于JPanel 中的JTable 必须构造JScrollPane js=new JScrollPane(table)才能显示列标题

    数据刷新可以用再次从数据源再次拿到新数据,然后调用js.setViewportView(table)即可,刷新数据就可以啦。

    展开全文
  • Java】JTable的数据刷新

    千次阅读 2020-06-11 23:58:06
    JTable的数据刷新问题

    前言

    这段时间在写一个大实验,水果超市管理系统,yes,我觉得挺大的,但是就当成了一个实验,接下来还有一个课程设计和一个实训,more bigger…

    问题

    在我把其他的都写好的时候去写UI层,发现,我的表格刷新是一个大问题,那么究竟怎么灵活的设置表格中的数据呢?

    这就不得不提一下TableModel这个怪东西了

    TableModel:

    public interface TableModelTableModel 接口指定了 JTable 用于询问表格式数据模型的方法。
    只要数据模型实现了 TableModel 接口,就可以通过以下两行代码设置 JTable 显示该模型:
    TableModel myData = new MyTableModel();
    JTable table = new JTable(myData);

    DefaultTableModel(Object[][] data, Object[] columnNames)

    构造一个 DefaultTableModel,并通过将 data 和 columnNames 传递到 setDataVector 方法来初始化该表。

    JTable:

    DefaultTableModel 是一个模型实现,它使用一个 Vector 来存储所有单元格的值,该 Vector 由包含多个 Object 的 Vector 组成。除了将数据从应用程序复制到 DefaultTableModel 中之外,还可以用 TableModel 接口的方法来包装数据,这样可将数据直接传递到 JTable,如上例所示。这通常可以提高应用程序的效率,因为模型可以自由选择最适合数据的内部表示形式。

    以上来自JavaAPI

    人话说

    TableModel就是存放JTable表格数据的东西

    下面是一个简单的demo,希望对你有帮助

    package test;
    
    import javax.swing.*;
    import javax.swing.table.*;
    
    public class TableTest extends JFrame {
    	private JLabel title = new JLabel("水果列表");		//上部标题
    	private JScrollPane pane = new JScrollPane();	//表格滚动面板
    	private JTable table = new JTable();			//水果表格
    	
    	public TableTest() {
    		init();//窗口初始化
    		addComponent();//添加表格
    		updateTable();//刷新表格数据
    	}
    	public static void main(String[] args) {
    		new TableTest();
    	}
    	//窗口初始化
    	public void init() {
     		this.setTitle("水果管理系统!");
     		this.setSize(600, 420);
     		this.setResizable(false);
     		this.setLocationRelativeTo(null);
     		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     		this.setVisible(true);
     	}
    	//添加表格
    	public void addComponent() {
    		this.setLayout(null);//设置绝对布局
     		//添加标题
     		title.setBounds(265, 20, 70, 25);
     		this.add(title);
     		//表格
     		table.getTableHeader().setReorderingAllowed(false);//列不能移动
     		table.getTableHeader().setResizingAllowed(false);//不可拉动表格
     		table.setEnabled(false);//表格不可更改数据
     		pane.setBounds(50, 50, 500, 200);
     		pane.setViewportView(table);//滚动面板显示表格数据
     		this.add(pane);
    	}
    	//刷新表格数据
    	public void updateTable() {
    		String[] title = {"水果编号","水果名称","水果单价(/元)","计价单位"};
    		Object[][] rowData = {
    			{1,"苹果",5.5,"kg"}
    		};
    		
    		TableModel dataModel = new DefaultTableModel(rowData, title);
     		table.setModel(dataModel);
    	}
    }
    
    
    展开全文
  • java"]package com.test2; import javax.swing.*; import java.awt.event.*; import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; import javax.swin.....
    package com.test2;

    import javax.swing.*;

    import java.awt.event.*;

    import javax.swing.event.TreeSelectionEvent;
    import javax.swing.event.TreeSelectionListener;
    import javax.swing.tree.*;

    import java.awt.*;

    public class ShowContrlJtreeInClass extends JFrame implements ActionListener {
    private JTree jt;
    private JSplitPane sp;
    private JPanel p2;
    private JTextField t;
    private JButton b;
    private DefaultTreeModel dt;
    DefaultMutableTreeNode root;

    ShowContrlJtreeInClass() {
    t = new JTextField(10);
    b = new JButton("提交");
    p2 = new JPanel();
    p2.setBackground(Color.blue);
    p2.add(t);
    p2.add(b);
    root = new DefaultMutableTreeNode("吉大远程");
    DefaultMutableTreeNode n1 = new DefaultMutableTreeNode("电子商务");
    DefaultMutableTreeNode n2 = new DefaultMutableTreeNode("软件");
    root.add(n1);
    root.add(n2);
    dt = new DefaultTreeModel(root);
    jt = new JTree(dt);
    JScrollPane js = new JScrollPane(jt);
    sp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, js, p2);
    this.add(sp);
    this.setSize(400, 200);
    this.setVisible(true);
    this.setLocationRelativeTo(null);
    b.addActionListener(this);
    }

    public void actionPerformed(ActionEvent arg0) {
    // 创建一个新节点,以输入的内容为准。
    String str = t.getText();
    DefaultMutableTreeNode n = new DefaultMutableTreeNode(str);
    root.add(n);// 将新建节点添加到根节点中。
    root.remove(0);// 移除指定索引上的节点。

    dt.reload();// 重新装载树控件的内容。
    // root.getChildAt(0).toString();//获取指定索引上的子节点的内容。
    // root.getChildCount();//获取子节点的数量。
    }

    public static void main(String[] arg) {
    new ShowContrlJtreeInClass();
    }

    }
    展开全文
  • 网上有很多关于这方面的介绍,但是写的要么含糊,要么不全,很容易让开发者更加糊涂,本人最初也是这样,所以在这里把JTable 的动态数据拉取显示以及自动刷新的方法整理一下。
  • Java结构 通过Java中的一些通用数据结构运行以刷新我的脑海语言。
  • java 刷新(即flush)

    千次阅读 2015-07-24 11:02:28
    刷新就是刷新缓冲区,缓冲区就是内存,这样还是太拗口了——更浅显易懂的说法应该是,刷新的意思是把内存的数据强制写到磁盘(即文件、各种控制台、浏览器等)。 参考:java 什么叫刷新流的缓冲 流是计算机中...
  • echarts案例(java版实现ajax获取数据刷新
  • 以下代码不完整,仅把关键的代码贴出来 ... tab = new Object[userInfoNumber][6];...Iterator iter = userList.iterator();...//刷新 ...如果是更新数据的话,只需 tableModel.fireTableDataChanged();
  • java IO流的输出字符流在写入操作后,需要刷新,为什么输出字节流中在写入数据后不用刷新
  • 程序运行截图如下: ...HelloServlet.java package my; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpS...
  • 之前在使用JTextArea来实现数据在加入到文本域后,实现视图中文本始终在最新一行,查阅了相关资料,综合多个发现需要以下步骤方能实现, jTextPane.setCaretPosition(jTextPane.getDocument()
  • java端SpringMVC 框架调用的方法如下: @ResponseBody @RequestMapping("/ajaxPage") public String ajaxPage(HttpServletRequest request){ ... 页面上如何获取到Java返回的json数据呀?
  • AJAX_JSON每秒刷新数据

    2016-01-13 17:44:23
    AJAX_JSON每秒刷新数据 stock.jsp UserServlet.java
  • java JTable刷新问题

    千次阅读 2016-06-25 10:07:33
    import java.util.LinkedList; import java.util.List; import javax.swing.SwingUtilities; import javax.swing.table.AbstractTableModel;     /**  *  * @date 17/10/2012  */ public ...
  • bootstraptable的加载刷新数据

    万次阅读 2017-08-01 11:04:04
    bootstraptable的加载刷新数据 表格的多条件查询
  • 在第一次取回数据库内容并显示后 再取得另一些数据刷新表格内容无法显示 用frame.repaint()并没有用 该怎么办
  • JTable数据刷新

    千次阅读 热门讨论 2017-07-14 21:03:11
    JTable数据刷新网上找了很多资料,很多都是以讹传讹,不能实现JTable的刷新。摸索了很久才找到了这种可行的办法。感觉自己还是弱爆了啊,囧囧囧o(╯□╰)oJTable结构 JTable采用了MVC的设计模式,见下图。JTable...
  • 在我的java页面上有一个表格,每条数据后面都有一个操作的按钮,当我点击这个按钮之后呢,我想弹出“处理成功”或“处理失败”的对话框,然后刷新当前页面。 我这个页面是用分页做的,所以如果我直接提交到当前...
  • java缓存数据并配置有效时间

    千次阅读 2020-06-15 10:50:01
    没有用到redis 只是单纯的使用内存存储数据 实现的功能:缓存数据并配置有效时间,可设置默认时间自动清除缓存,也可以自己设置。 直接上代码: import java.util.LinkedList; import java.util.List; import java....
  • JTable在JScrollPane中刷新数据的问题

    千次阅读 2016-08-24 17:51:19
    今天下午遇到一个问题.当我从数据库从查询到数据想及时把数据更新到JScrollPane中...后面我不停的实验,发现一种很笨的方法,虽然结果是数据刷新了.现介绍给大家:  我的JTable和JScrollPane的定义如下: JTable roo
  • Viewpager刷新数据问题

    千次阅读 2017-12-10 18:56:17
    2、刷新数据的方法 第一种方法:重写PagerAdapter的getItemPosition(Object object)方法,使其返回POSITION_NONE @Override public int getItemPosition(Object object) { return POSITION_NONE; } 这种...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 237,992
精华内容 95,196
关键字:

java刷新数据

java 订阅