我知道(我已查看过这些来源;))已禁用JXTreeTable上的排序.
但是,我想仅允许根据根节点的直接子节点的值对所有列进行排序.
说我有这样的结构:
Name / Date / File UID
(Root)
|- Mr. X / 1996/10/22 / AE123F6D
|--- File1 / 2012/01/10 / DFC2345Q
|--- File2 / 2012/01/11 / D321FEC6
|- Mrs. Y / 1975/03/03 / G2GF35EZ
|--- File3 / 2012/02/29 / 35GERR32
|--- File4 / 2012/01/22 / LKJY2342
.
.
.Run Code Online (Sandbox Code Playgroud)
我想要实现的是仅在第一级节点上对3列进行排序.假设我想按升序日期对其进行排序,它最终会像这样:
Name / Date / File UID
(Root)
|- Mrs. Y / 1975/03/03 / G2GF35EZ
|--- File3 / 2012/02/29 / 35GERR32
|--- File4 / 2012/01/22 / LKJY2342
|- Mr. …Run Code Online (Sandbox Code Playgroud) 当我使用JXTable渲染和编辑我的数据时,CellEditors的一些输入会丢失.如果我单击JXTable-ColumnHeader的Resizing-Divider或更改JFrame的宽度,CellEditor将终止而不提交值.如果我使用JTable,则保存这些值.
我想使用JXTable因为它的其他功能,所以有没有办法修复JXTable?

例:
package table.columnresize;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import org.jdesktop.swingx.JXTable;
/**
* Demo of differing behaviour of JXTable and JTable. JXTable loses input in a TableCell where JTable persists
* it.
* <p>
* <table border=1>
* <tr>
* <th></th>
* <th>JXTable</th>
* <th>JTable</th>
* </tr>
* <tr>
* <td>Click on TableColumnHeader</td>
* <td>saved</td>
* <td>saved</td>
* </tr>
* <tr>
* <td>Resizing with Divider of TableColumnHeader</td>
* <td>lost</td>
* <td>saved</td>
* </tr>
* <tr>
* …Run Code Online (Sandbox Code Playgroud) 我正在制作游戏记忆,当你选择两张牌时,如果匹配你就得保留它们,否则你会把它们转回去.如果你记得你已经选择过的牌,你可以对接下来的两张牌进行更好的猜测.
我repaint()遇到的问题涉及不立即重新粉刷的方法.
当我翻转第二张卡片时,无论结果如何,我都要显示两张卡片在放弃或翻转之前向右翻转.我是通过打电话来做的sleep().
当然,如果我repaint()将卡片正面向上翻转,等待一秒钟,然后repaint()再根据它们的值,有用的小Java只会重绘一次(我想念C!).
基本上我想在我之前强制调用更新sleep().我已经阅读了一些其他线程,基本上说最好的方法是创建两个线程来保持逻辑和图形分离,然后你可以使用sleep()你的逻辑并保持你的GUI更新,但我在第一学期CS课程的第一学期在高中时,我希望将其保持在课程的水平上(尽管我花了很多时间在夏季网上开发和编写C语言).
因为我知道StackOverflow上有用的人喜欢阅读代码,所以这是我在下面提到的程序的一部分.该类HitArea是Card对象,cards[]数组包含一定数量HitArea的.(我没有重命名HitArea该类).activeCard1并且activeCard2是HitArea我用来跟踪用户的两个选择的实例,并且空白构造函数是保留的"不可见" HitArea,尽管我稍后会将其更改为null.最后,cards.flip()反转一个toggle布尔值,确定卡是否正面朝上.
public void respond(HitArea choice)
{
if(choice.inGame)
{
if(activeCard1.value == 0 && activeCard1.value == 0)
activeCard1 = choice;
else if((!(activeCard1.value == 0) && activeCard2.value == 0) && (activeCard1.id != choice.id))
{
activeCard2 = choice;
check();
}
}
}
public void check()
{
update(); …Run Code Online (Sandbox Code Playgroud) 我需要突出显示JTable中的每一行.使用旧版本的swingx,可以这样做:
table.setHighlighters(new HighlighterPipeline(new Highlighter[] { new AlternateRowHighlighter(
color1, color2,color3 }));
Run Code Online (Sandbox Code Playgroud)
但现在,使用swingx 1.6,方法setHighlighters()无法接受这些参数.它说"JXTable类型中的方法setHighlighters(Highlighter ...)不适用于参数(HighlighterPipeline)"
那么我怎么能用新的swingx呢?
我想在a中使用a JComboBox作为单元格编辑器JXTreeTable.它与标准工作正常DefaultCellEditor(即点击计数开始等于2).
现在我希望只需单击一下就可以编辑该列.所以我cellEditor.setClickCountToStart(1);在我的代码中添加了一个声明.
这是我的SSCCE:
import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.DefaultCellEditor;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import org.jdesktop.swingx.JXTreeTable;
import org.jdesktop.swingx.treetable.DefaultMutableTreeTableNode;
import org.jdesktop.swingx.treetable.DefaultTreeTableModel;
public class TestCellEditorForJXTreeTable {
/** The JXTreeTable */
JXTreeTable treeTable;
/** The model */
DefaultTreeTableModel treeTableModel;
/** Constructor */
public TestCellEditorForJXTreeTable() {
treeTable = new JXTreeTable();
treeTableModel = new DefaultTreeTableModel() {
@Override
public String getColumnName(int column) {
switch (column) {
case 0:
return "A";
case 1:
return …Run Code Online (Sandbox Code Playgroud) 我找不到关于它的官方网站,只是一个指向http://swingx.dev.java.net/的 github 存储库 ( https://github.com/tmyroadctfig/swingx )不存在任何而且,所有链接都指向java.net。
这个项目的现状如何?弃?死的?有我找不到的新家吗?
有没有人知道是否可以选择swingx的jxdatepicker多天?我正在使用swingx版本1.6.1(看起来是最新的).
目前我有一个JOptionPane.单击按钮时,我正在执行以下行.
JOptionPane.showInputDialog(this,"Enter your message","Messages",2);
Run Code Online (Sandbox Code Playgroud)
它会打开一个带有文本框的弹出窗口.此文本框可接受大约40/50个字符.实际上我的要求是在这个文本框中取消长消息(最多300个字符),这样就可以了.所以我们想在这个输入对话框中找到一个文本区域?有可能怎么样?有没有更好的解决方案?提前致谢.
我想将蓝色背景颜色更改为taskpanecontainer的白色.我用过下面这行但没有任何影响.
UIManager.put("TaskPaneContainer.background", Color.LIGHT_GRAY);
Run Code Online (Sandbox Code Playgroud)
请给我一些改变bg颜色的想法.
public class NewJFrame2 extends javax.swing.JFrame {
public NewJFrame2() {
initComponents();
setSize(462, 300);
add(doInit());
setBackground(Color.WHITE);
}
private Component doInit() {
JXTaskPaneContainer taskpanecontainer = new JXTaskPaneContainer();
//taskpanecontainer.setLayout(new VerticalLayout(2));
JXTaskPane taskpane1 = new JXTaskPane();
taskpane1.setTitle("First TaskPane");
JXTable table = new JXTable();
DefaultTableModel model = new DefaultTableModel();
model.addColumn("ParameterName");
model.addColumn("ParameterType");
model.addColumn("Operation");
model.addRow(new Object[]{"Request", "String", "Delete"});
model.addRow(new Object[]{"Request", "String", "Delete"});
table.setModel(model);
((JComponent) taskpane1.getContentPane()).setBorder(BorderFactory.createEmptyBorder(0,5,0,5));
taskpane1.add(table);
taskpanecontainer.add(taskpane1);
taskpanecontainer.setBorder(javax.swing.BorderFactory.createEmptyBorder(0,0,0,0));
return taskpanecontainer;
}
}
Run Code Online (Sandbox Code Playgroud)
我也在分享图像,所以我已经清除了你的想法..

谢谢
java ×10
swingx ×10
swing ×8
jxtreetable ×3
jtable ×2
datepicker ×1
joptionpane ×1
jxtable ×1
jxtaskpane ×1
repaint ×1