相关疑难解决方法(0)

为什么JScrollPane中的JPanel不能滚动?

我有一个JPanel(黄色)放入JScrollPane.

PIC1

当我输入一些文本时JTextPane,它会调整大小,但垂直滚动条仍然不活动.yelowPanel.getSize()返回与之前相同的值.(您可以在redPanel上看到它).

PIC2

那我怎么刷新yellowPanel?我想垂直滚动面板.我试过了:

panelCreating.revalidate();
panelCreating.invalidate();
panelCreating.repaint();
Run Code Online (Sandbox Code Playgroud)

仅适用,panelCreating.setPreferredSize(new Dimension(333, 777));但我不知道要设置的大小.这取决于内容.

有一个小例子:

package swingtest;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;

public class SwingTest extends JFrame {

    public SwingTest() {
        initComponents();
    }

    public static void main(String[] args) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            @Override
            public void run() {
                new SwingTest().setVisible(true);
            }
        });
    } …
Run Code Online (Sandbox Code Playgroud)

java swing jscrollpane

8
推荐指数
2
解决办法
3万
查看次数

使用Swing显示Java系统属性

有没有一种简单的方法,使用Java Swing,在我的工作站上显示Java系统属性名称和值?

基本上,我正在寻找的是一个Java Swing应用程序,它显示如下:

系统属性

java swing system-properties

7
推荐指数
2
解决办法
1790
查看次数

如何创建包含字符串和对象的Hashtable条目的JList?

我想创建一个包含Hashtable of String和object的条目的JList:

Hashtable<String,Object>
Run Code Online (Sandbox Code Playgroud)

JList元素应该包含哈希表条目并显示作为字符串的条目键的值...

可能吗 ?怎么做到呢 ?

java swing hashmap jlist

6
推荐指数
3
解决办法
4850
查看次数

如何在JTable中使用hashMap

我有一个hashMap,我希望它的数据可以在JTable中查看我怎么会遇到hashMap数量的列和行以及要显示的数据.我有一个hashmap,它以一个accountID作为键和一个学生的对象,其中每个学生都有他们的数据,如姓名,身份,年龄等,无论如何引用JTable文档,它说我需要整数行和列和一个类型为Object的多维数组.我该怎么做?我可以将hashMap更改为multidimenion数组吗?

- 编辑我已经编辑了我的问题所以它可以更清楚,我是相当新的Java我真的没有得到你们发布的内容,特别是因为我正在做的工作与OO有很大关系并且掌握OO概念是我最大的挑战,

/ 我有一个dataStorage类,注册用户使用其用户名的Key输入添加到HashMap,即getUser./

import java.util.*;

public class DataStorage 
{
    HashMap<String, Student> students = new HashMap<String, Student>();  
    HashMap<String, Staff> staffMembers = new HashMap<String, Staff>();  
    //Default constructor
    public DataStorage(){
    }

    public void addStaffMember(Staff aAcc) 
    {
     staffMembers.put(aAcc.getUser(),aAcc);
    }

    public void addStudentMember(Student aAcc)
    {
     students.put(aAcc.getUser(),aAcc);
    }

   public Staff getStaffMember(String user)
   {
   return   staffMembers.get(user);
   }

   public Student getStudent(String user)
   {
    return students.get(user);
   }

   public int getStudentRows()
   {
        return students.size();
   }


}
Run Code Online (Sandbox Code Playgroud)

/****这是一个扩展账号的学生班级***/

public class Student extends Account {

    private String studentNRIC;
    private …
Run Code Online (Sandbox Code Playgroud)

java swing

5
推荐指数
3
解决办法
2万
查看次数

如何在jtable中灰​​显不可编辑的单元格?

我想在JTable中灰​​化不可编辑的单元格.我正在使用这样的TableCellRenderer:

TableColumn column = table.getColumnModel().getColumn(0);
column.setCellRenderer(new GrayableCheckboxCellRenderer());

public class GrayableCheckboxCellRenderer extends JCheckBox implements TableCellRenderer {
    public Component getTableCellRendererComponent(JTable table, Object value,
            boolean isSelected, boolean hasFocus, int vRowIndex, int vColIndex) {           
            boolean editable = isEditable(vRowIndex, vColIndex);
        setBackground(editable ? UIManager.getColor("Label.background") : Color.LIGHT_GRAY);
        setSelected((Boolean) value);
                if (isSelected) {
                    // TODO: cell (and perhaps other cells) are selected, need to highlight it
                }
        return this;
    }
    // perfomance
    protected void firePropertyChange(String propertyName, Object oldValue, Object newValue) {}
    public void firePropertyChange(String propertyName, boolean oldValue, boolean …
Run Code Online (Sandbox Code Playgroud)

java swing jtable

4
推荐指数
2
解决办法
7207
查看次数

无论索引如何,最后一行始终从DefaultTableModel中删除

当我尝试从java中的表中删除行时,我遇到了一些问题.特别是,我使用DefaultTableModel,当我尝试删除行时,使用该removeRow(int row)方法,最后一行被删除,无论是什么row.例如,假设我们有六行.当removeRow(0)removeRow(2)removeRow(5)叫,最后一行是始终去除.任何想法,为什么会这样?

谢谢

---更新

当按下jtable的特定单元格时,应移除相应的行.

    class TagsTableMA extends MouseAdapter {

    @Override
    public void mousePressed(MouseEvent e){
        Point p = e.getPoint();
        int row = tagsJT.rowAtPoint(p);
        int column = tagsJT.columnAtPoint(p);

        if (column == COLUMN_DELETE_TAG){
            DocDialog docDialog = new DocDialog(parentMainJF, 
                                                true, 
                                                null, 
                                                "Please confirm...", 
                                                "Are you sure you want to delete the \"" + 
                                                tagsJT.getValueAt(row, COLUMN_TAG_NAME) +
                                                "\" tag?",
                                                DocDialog.TYPE_YES_NO);
            docDialog.show();
            int answer = docDialog.getAnswer();

            if (answer == DocDialog.YES)                                                
                    model.removeRow(row);
        }
    } …
Run Code Online (Sandbox Code Playgroud)

java swing row jtable defaulttablemodel

4
推荐指数
1
解决办法
939
查看次数

如何在JTable中刷新数据我正在使用TableModel

嗨,

我创建了我的TableModel,并希望在添加新行后刷新JTable.应该添加什么来监听"刷新"JTable?

public class MyTableModel implements TableModel  {
    private Set<TableModelListener> listeners = new HashSet<TableModelListener>();

    //List<Staff> staffs = Factory.getInstance().getStaffDAO().getAllStaff();
    private List<Staff> staffs;

    public MyTableModel(List<Staff> staffs){
        this.staffs = staffs;
    }

    @Override
    public int getRowCount() {
        return staffs.size();
    }

    @Override
    public int getColumnCount() {
        return 5;  
    }

    @Override
    public String getColumnName(int columnIndex) {
        switch (columnIndex){
            case 0:
                return "First Name";
            case 1:
                return "Second Name";
            case 2:
                return "Date";
            case 3:
                return "Position";
            case 4:
                return "Salary";
        }
        return "";  
    }

    @Override
    public …
Run Code Online (Sandbox Code Playgroud)

java swing jtable tablemodel

4
推荐指数
2
解决办法
5万
查看次数

ArrayList <ArrayList <String >>到String [] []

它看起来像JTable构造喜欢String[][]...但我喜欢使用更智能的容器,直到我必须使用其他东西.一直在使用ArrayList<ArrayList<String>>,现在我需要JTable开心String[][].

我找到了一种简单的方法来转换ArrayList<String>String[]使用toArray(),但没有找到多维数组的简易转换器.

我想从去ArrayList<ArrayList<String>>String[][]的行数最少的.

我一直在搜索图书馆,似乎无法找到这个转换器,并希望有人可以建议一个很好的解决方案.

提前致谢.

java swing jtable

3
推荐指数
2
解决办法
652
查看次数

JTextArea 占用大量内存

我在使用 Java 和 Swing 时遇到了一些内存问题。我有一个JTextArea(与 相同的问题JTextPane),用于从 C++ 可执行文件重定向标准输出。而且因为我输出了很多标准输出,JTextPane所以消耗了大量空间。无论如何,我将其归结为以下代码,全部使用 Java。

private javax.swing.JTextArea jtextareastdout;
....

for (int i = 0; i < 200000; i++) {
    String randomstr = UUID.randomUUID().toString();

    jtextareastdout.setText(randomstr);  //<tag_memory>
    if (i % 100 == 0)
        System.gc(); //<tag_no_help>
}
Run Code Online (Sandbox Code Playgroud)

以上代码占用100MB。注释掉 tag_memory 行后,少了很多(我的所有其他代码和 UI 为 30MB)。如何减少 Java 的内存使用量?当前使用 Java 7 更新 4。

提前致谢。

java swing document jtextarea

3
推荐指数
1
解决办法
1206
查看次数

加载Java JTable:为什么它不起作用?

我创建了一个包含JTable的简单GUI.可以通过适当的对象流保存和加载该表.

此时Save函数按预期工作,我可以看到在查找save目录时表对象存储在文件中.

但是,当我尝试从文件加载表时,GUI从不显示加载的表.调用actionlistener函数,因为我有一个system.out"数据已加载",但该表从不显示更新的数据.

我试图调用repaint(),但无济于事.对于那些能够解释我可能做错的事情的人,我将非常感激.

看一些代码

import javax.swing.*;
import java.awt.*;
import javax.swing.table.DefaultTableCellRenderer;
import javax.imageio.*;
import java.io.*;
import java.awt.image.BufferedImage;
import java.util.*;
import javax.swing.table.*;
import java.awt.event.*;


public class Save3 extends JFrame implements ActionListener{

public int PADDING = 10;

public JMenuItem menuNew;
public JMenuItem menuOpen;
public JMenuItem menuSave;
public JMenuItem menuExit;

public JPanel       container;

public DefaultTableModel    model;
public JScrollPane          scrollPane;
public JTable               table;

public FileInputStream      fis;
public ObjectInputStream    in;
public FileOutputStream     fos;
public ObjectOutputStream   out;
public String               filename;


public Save3(){
    fis         = null;
    in …
Run Code Online (Sandbox Code Playgroud)

java swing load jtable stream

3
推荐指数
1
解决办法
2460
查看次数