如何使Swing / JFace / SWT GUI可寻址? - java

我有一个“胖” GUI,它变得相当复杂,我想添加从一个地方到另一个地方的链接,并添加后退/前进按钮以简化导航。在我看来,如果我的应用程序是可寻址的,这会更容易:每个组合都可以有其URI,而链接将使用该URI。

有适用于此问题的设计模式吗?

我可以看一下Firefox或Eclipse的源代码,但是这些都是巨大的项目,要弄清它们需要花费大量时间,所以我在这里问。那里有一个更简单的例子吗?

当然,如果我首先构建一个Web应用程序会更简单,但是我不会很快就从头开始重写这个庞大的应用程序。

参考方案

在Swing中,您可以使用CardLayout。您可以使每个“页面”成为一张卡片,并且卡片的名称(将卡片添加到布局中时选择的名称)将等于您想要的URI。

例:

String PAGE_1_KEY = "page 1";
String PAGE_2_KEY = "page 2";
// as many keys as you need

JFrame frame = ...;
frame.setLayout(new CardLayout());
frame.add(createPage1(), PAGE_1_KEY);
frame.add(createPage2(), PAGE_2_KEY);
// etc.

然后在按钮的动作监听器中,您将调用

((CardLayout)frame.getLayout()).show(frame, PAGE_1_KEY); // or whichever

swt.jar在哪里? - java

有人知道我可以在哪里下载swt.jar吗? 参考方案 您可以在SWT eclipse页面上的“releases”下获得它。

SWT表:自动调整所有列的大小 - java

Qt解决方案是对resizeColumnsToContent()的单个调用,在.NET中,可以使用TextRenderer.MeasureText(),JTable可以使用AUTO_RESIZE_ALL_COLUMNS。在SWT中,是否有一种方法可以在填充列之后以编程方式调整列的大小?调用computeSize(SWT.DEFAULT, SWT.DEFAUL…

如何按JFace TableViewer的多列排序 - java

我正在尝试实现一个tableviewer,它可以根据用户单击列标题的顺序对值进行排序。例如如果存在三列column1,column2,column3,并且用户按以下顺序单击了column3,column2,column1,则对第3列的值的第一个行进行排序,然后对第2列进行排序,最后对column1进行排序。我以以下方式忽略了compare方法:protect…

异步控制BusyIndi​​cator - java

显然,所有Eclipse / SWT用来管理忙碌鼠标指示器的方式都是BusyIndicator.showWhile(Runnable synchronousStuffToDo) 但是,我有一个从根本上面向事件的项目,其中在连续的执行行中不会发生“要做的事情”:对操作进行排序,并向执行管理器提供继续回调。因此,我没有什么可放入该synchronousStuff…

设置SWT Shell的默认字体 - java

有没有办法为整个Shell设置默认字体,以便任何新控件都将使用相同的字体?似乎现在我必须为我创建的每个控件设置字体,这会导致过多的冗余。 参考方案 默认情况下使用的字体是由平台选择的(请参阅Class Font - SWT: The Standard Widget Toolkit中的其他信息),因此不可能为所有小部件设置默认字体,如果需要,则必须“手工”完成…