Tag: swing

如何在jtable行中为多个值插入jcombobox

Hashmap包含键和值(解析XML的结果)。 Hashmap包含键是字符串的方式,值是向量。 键可以在向量中具有单个值,也可以在向量中具有多个值。 这个hashmap必须放入jtable中,这样如果键有单个值,就把它放到文本框中。 如果它有多个值,则在表格中插入一个combobox。 您可以更改代码。 hashmap.put(nodeList.item(j).getNodeName(), nodeValueList); Set keys = PropertyIMPL.hashmap.keySet(); Iterator iteratorKeys = keys.iterator(); while (iteratorKeys.hasNext()) { String key = (String) iteratorKeys.next(); if (nodeValueList.size() > 1) { tablemodel.insertRow(0, new Object[]{key}); String[] ss = (String[]) nodeValueList.toArray( new String[nodeValueList.size()]); TableColumn col = table.getColumnModel().getColumn(1); col.setCellEditor(new MyComboBoxEditor(ss)); } else { tablemodel.insertRow(0, new Object[]{key, nodeValueList}); } } keys.clear();

从jDateChooser获取值并保存到MS sql DB

我的对话框中有两个jDateChooser,我想保存到有这些数据类型问题的MS-SQL DB。 不知道如何解决这个问题! 我只能在数据库中将数据类型转换为nvarchar并将值转换为从jDateChooser返回的字符串时执行此操作。 //我可以用这种方式保存,但我不使用jDateChooser; java.util.Date utilDate = new java.util.Date(); java.sql.Date sqldate = new java.sql.Date(utilDate.getTime()); //我无法用jDateChooser保存日期 java.sql.Date sqldate = new java.sql.Date(jDateChooser3.getDate()); //我发现的唯一方式 SimpleDateFormat dateFormat = new SimpleDateFormat(“dd/MM/yyyy”); String sd = dateFormat.format(jDateChooser3.getDate()); obj.setStartDate(sd); //

制作一个模态JInternalFrame

我需要在MDI JFrame中从用户那里获得大量数据(文件选择,文本,日期……)。 我需要一个JInternalFrame的输入forms是模态的。 如何制作JInternalFrame模式?

JMenu在Windows7 LAF Java7中使用focuslost事件

如果在单击另一个组件时仍然打开弹出菜单,则该组件不会获取该事件,因为它可能被弹出窗口消耗。 这通常发生在所有JPopupmenus上。 这只发生在带有Windows LAF(Windows7)的Java 7中。 有解决方法吗? 这是一个已知的bug吗? import javax.swing.*; import java.awt.event.*; public class Test { public static void main(String[] s) throws Exception { String lookAnfFeelClassName = UIManager.getSystemLookAndFeelClassName(); UIManager.setLookAndFeel(lookAnfFeelClassName); JMenu menu = new JMenu(“TEST Menu”); JMenuItem menuItem = new JMenuItem(“Menu Item 1”); JMenuBar menuBar = new JMenuBar(); menu.add(menuItem); menuBar.add(menu); final JButton b = new JButton(“Test”); b.setBounds(5, […]

为什么JTable在渲染时使TableModel不可序列化?

所以最近我在这里为我们开发了一个工具来配置某些应用程序。 它不需要真正棒极了,只需要生成一些SQL脚本的基本工具,并创建几个XML文件。 在此期间,我使用自己的AbstractTableModel实现创建了一系列JTable对象。 在我构建了所有内容之后,我开始使用AbstractTableModel测试保存和加载(仅使用ObjectStreamWriter写入磁盘)序列化失败。 我几乎整天都在弄清楚发生了什么。 当我尝试序列化它们时,我会在java.lang.reflect.Constructor上得到一个NotSerializableException。 我不知道这是什么,因为我的表模型只包含可序列化的实体,我附加的所有监听器也是可序列化的,父类也是可序列化的。 经过大量的挖掘和一些有用的post后,我发现当你将一个TableModelListener添加到一个AbstractTableModel实现时,除了你添加的一个监听器之外还添加了另一个监听器,类型为javax.swing.event.TableModelListener,它不是t serializable(参见http://docs.oracle.com/javase/7/docs/api/javax/swing/event/TableModelListener.html的接口,我不知道实现)。 编辑模型不会添加这个非可序列化的侦听器,JTable会这样做。 我的问题基本上是,为什么这个对象会在内部添加自己的非可序列化对象,从而否定事实上它实际上实现了Serializable? 这是我应该报告的错误吗? 仅供参考我的工作就是简单地删除所有的监听器,序列化,然后重新添加监听器。 反序列化时我只需要添加我创建的那个,模型再次创建另一个。 编辑尝试使用通过调用setValueAt()方法提供的序列化程序类序列化此模型。 import java.io.Serializable; import javax.swing.event.TableModelEvent; import javax.swing.event.TableModelListener; import javax.swing.table.AbstractTableModel; public class BlankTableModel extends AbstractTableModel implements Serializable { /** * */ private static final long serialVersionUID = 6063143451207205385L; public BlankTableModel() { this.addTableModelListener(new InnerTableModelListener()); } @Override public void setValueAt(Object o, int x, int […]

JTable标题背景颜色

我正在尝试将背景颜色放在JTable标题上,但它似乎没有改变标题的颜色这是我的JTable的代码..我做错了什么? Color headerColor = new Color(25, 78, 132); itemTable = new JTable(){ public boolean isCellEditable(int row, int column) { return false; }; Color rowColor1 = new Color(99, 154, 206); Color rowColor2 = new Color(148, 186, 231); public Component prepareRenderer(TableCellRenderer renderer, int row, int column) { Component stamp = super.prepareRenderer(renderer, row, column); if (row % 2 […]

使用OpenGL将文本添加到屏幕

目前,我正在开发一个OpenGL项目,这是我所做的屏幕截图 问题是,我想在罗盘上添加文本(度),并希望用纯OpenGl方法来实现。 我找到了TextRenderer类,但无法下载并使用它。 如何在我的Java项目中使用TextRenderer类? 如果除了TextRenderer之外还有其他任何添加文本的方式,那么我很乐意听到它。 我的第二个也是最重要的问题是将swing / awt方法与OpenGL合并并使用多个对象。 我只使用一个GL2对象编写程序并且工作得很好,在同一帧上使用多个openGL对象是否明智? 此外,使用swing方法和openGL方法是一个好主意?

制作表格与JPanels列表(应用百分比大小列)

在这篇文章中制作带有JPanel列表的表格我可以制作一个带有面板列表的表格。 这个表有很多function,但我需要一个新的function,它应用百分比列。这意味着我喜欢所有列的宽度不等于和一个浮点数组确定。 这是我的class级表: import javax.swing.*; import java.awt.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.Vector; public class PanelTable extends JPanel { private String data[][]; private String columns[]; private int numberOfRows; private int numberOfColumns; private JTextArea[] header; private JTextArea[][] cell; public PanelTable(String data[][], String columns[]) { setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); this.data = data; this.columns = columns; numberOfRows = data.length; […]

Java – ZUI(Zoomable用户界面)

我目前正在做一个需要显示大量数据的小型个人项目,我突然想到实现一种可缩放的用户界面,允许用户浏览大量数据。 我知道现有的项目,比如ZVTM和Piccolo2d ,我可能会最终用于这项工作,但我也很想开始自己写作。 但是,我有点不确定如何开始。 从我一直在阅读的内容看来,像Piccolo2d这样的项目是由于Java中缺乏“场景图”管理而开发的,而Piccolo2d是基于旧版项目的工作开发的,例如“Pad”,“Pad ++”和’爵士乐’。 经过一段时间的谷歌搜索,我可以看到JavaFX中提供了场景图管理,但我想知道Java 7中的Swing是否具有此function。 我有点想一想,我想知道是否可以使用JLayer API实现基本的缩放界面,实质上是根据当前的缩放级别来装饰具有不同层的对象。 举个例子,假设我可以看到最远缩放级别的目录,然后放大将显示目录的内容,并进一步放大将显示目录中存在的文件内的文本。 我已经和Eagle Mode玩了一段时间,所以这是我正在考虑的一个完美的例子。 我知道这是一个很长的问题(如果它真的是一个问题)。 基本上,让我们假设Piccolo等人不存在,而我所拥有的只是核心Java 7 JDK,有人能提出一个好的起点吗? 似乎Piccolo2d很大程度上依赖于Java2d API,所以我想知道API是否已经进步,或者Java 7引入了新的机制来实现类似的效果。 我对可以提供的任何意见或建议感兴趣。 我知道这不是一项容易的任务,但没有任何时间限制,它只是一个个人项目。 谢谢

删除JTable中的JCombobox边框

我从JComoboBox删除了箭头按钮,使其看起来像JTextField ,并将其添加为celleditor。 目的是创建一个AutoSuggest(非自动完成)JTable单元。 在这样做的边界有点看起来像irking。如何更改边框使其看起来像右侧的文本域边框。 我试过删除边框创建的线条边框。 但它没有移除蓝色边界。 使用Nimbus UI。 MCVE的问题 import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.BorderFactory; import javax.swing.DefaultCellEditor; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.SwingUtilities; import javax.swing.UIManager; public class Sample extends JFrame { public Sample() { init(); } private void init() { JTable table = new JTable(5, 5); DefaultCellEditor cellEditor = […]