- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如图所示,对话框打开时按钮栏有时无法正确显示。我认为由于我必须为 DefaultTableModel
嵌入 awt 框架,因此产生了一些布局问题。
有什么办法可以解决这个问题吗?或者我应该使用 jface checkboxtableviewer,但我找不到一个很好的例子。
public class FunctionMaskDialog extends Dialog implements TableModelListener{
private Boolean[] functionChecked;
private JTable table;
private Table table_1;
/**
* Constructor Create the dialog.
*
* @param parentShell
*/
public FunctionMaskDialog(Shell parentShell) {
super(parentShell);
}
@Override
protected void configureShell(Shell shell) {
super.configureShell(shell);
shell.setText("Function Mask");
}
/**
* Create contents of the button bar.
*
* @param parent
*/
@Override
protected void createButtonsForButtonBar(Composite parent) {
createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
getButton(IDialogConstants.OK_ID).addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
setFunctionCheckedArray();
}
});
createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
getButton(IDialogConstants.CANCEL_ID).addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
// TODO Auto-generated method stub
}
});
}
/**
* Create contents of the dialog.
*
* @param parent
*/
@Override
protected Control createDialogArea(Composite parent) {
Composite container = new Composite(parent, SWT.EMBEDDED);
container.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
Frame frame = SWT_AWT.new_Frame(container);
frame.setLayout(null);
frame.setBackground(new Color(240, 240, 240));
JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(30, 30, 494, 400);
// Table
table = new JTable();
scrollPane.setViewportView(table);
this.createFunctionTaskTable(table);
frame.add(scrollPane);
return container;
}
/**
* Return the initial size of the dialog.
*/
@Override
protected Point getInitialSize() {
return new Point(600, 530);
}
private void createFunctionTaskTable(JTable table){
// Model for Table
@SuppressWarnings("serial")
DefaultTableModel model = new DefaultTableModel() {
public Class<?> getColumnClass(int column) {
switch (column) {
case 0:
return Boolean.class;
case 1:
return String.class;
default:
return String.class;
}
}
@Override
public boolean isCellEditable(int row, int column) {
if (column == 1)
return false;
else
return true;
}
};
table.setModel(model);
model.addColumn("Select");
model.addColumn("Function Name");
table.getColumnModel().getColumn(0).setPreferredWidth(94);
table.getColumnModel().getColumn(1).setPreferredWidth(400);
// initialize chked array according to the size of task list.
functionChecked = GanttFrame.getFunctionCheckedArray();
model.addTableModelListener(this);
// Data Rows
for (int i = 0; i < GanttFrame.getFunctionTaskList().size(); i++) {
model.addRow(new Object[0]);
model.setValueAt(functionChecked[i], i, 0);
model.setValueAt(GanttFrame.getFunctionTaskList().get(i).getTaskName(), i, 1); // initialize the function names
}
}
private void setFunctionCheckedArray(){
Boolean[] tempArray = functionChecked;
for (int i = 0; i < table.getRowCount(); i++) {
functionChecked[i] = Boolean.valueOf(table.getValueAt(i, 0).toString());
}
if (!tempArray.equals(functionChecked)){
GanttFrame.setFunctionCheckedArray(functionChecked);
}
}
@Override
public void tableChanged(TableModelEvent event) {
DefaultTableModel model = (DefaultTableModel)event.getSource();
if (event.getColumn() == 0){
if (event.getFirstRow() == 0){
}
}
}
}
最佳答案
SWT/AWT 桥不是您想要自愿使用的东西。除非您确实必须在 SWT 应用程序中使用现有的 AWT UI,否则您应该远离它。这个article揭示更多细节。
如果可以的话,请使用CheckboxTableViewer
。要创建实例,请使用 CheckboxTableViewer#newCheckList()
。要在选中或取消选中某个元素时收到通知,请添加一个 ICheckStateListener
。 JavaDoc列出了查询和操作其元素的检查状态的所有方法。有关 TableViewer 的一般介绍,只需在网络上搜索“JFace TableViewer”,您就会找到大量资源。
关于java - JFace 对话框按钮栏出现故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28326840/
我有一个扩展 FormDialog 的自定义 JFace 对话框(称为 PropertyDialog)。我想在 PropertryDialog 打开后立即通过它打开一个模态消息对话框,以向用户显示一条
我在 jface View 中有一个 jface tableviewer 表,用户可以单击 tableviewer 表的任何行,单击时 View 必须导航到另一个 View ,并将选定的行 ID 发送
我正在尝试使用 Wizard 类 (org.eclipse.jface.wizard.Wizard) 生成向导 基本上,我在构造函数中扩展 Wizard 的地方是我 addPage 我想要的两个页面。
我创建了一个 JFace 向导,显示一个用户应该在其中进行选择的列表。由于该页面仅包含一个列表,因此我想启用双击选择。如果用户双击单个事件,向导应跳转到下一页。 到目前为止我得到了以下代码: vie
我想向选择按钮添加一个监听器,该按钮获取在 list 表查看器中选择的多行。然后它会继续检查这些框。我的问题是如何获取在表格查看器中选择的行列表? 这是该表的代码: private void crea
我正在使用一个小型 JFace 首选项存储,我可以在其中直接添加首选项,但是当我想删除已放入的首选项之一时遇到麻烦。 我在 API 中看不到任何允许删除的内容。这样做的正确方法是什么? 最佳答案 假设
我有一个没有columnviewer支持的jface树。它有一个装饰标签提供商,因为我需要装饰树项目。我无法使用 celllableprovider 来执行此操作。我看过诸如http://dev.ec
当用户展开 TreeViewer 中的特定节点时,它应该展开两层而不是一层。所以我添加了以下代码: viewer.addTreeListener(new ITreeViewerListener() {
如图所示,对话框打开时按钮栏有时无法正确显示。我认为由于我必须为 DefaultTableModel 嵌入 awt 框架,因此产生了一些布局问题。 有什么办法可以解决这个问题吗?或者我应该使用 jfa
我创建了一个 JFace 向导,显示一个列表,用户应该在其中进行选择。由于页面只包含一个列表,我想启用双击选择。如果用户双击单个事件,向导应该跳转到下一页。 到目前为止,我得到了以下代码: view
我想向选择按钮添加一个监听器,该按钮获取在 list 表查看器中选择的多行。然后它会继续检查这些框。我的问题是如何获取在表格查看器中选择的行列表? 这是该表的代码: private void crea
我在我的应用程序中使用 JFace 对话框。而且我不会子类化 getInitialSize(xxx)。 JFace 可以正确确定对话框的高度,但宽度。我的问题是 JFace 对话框是否可以自动计算我的
我对 Jface 还很陌生,现在我面临着表中最后一列的问题。看一下下一个屏幕截图: 正如您所看到的,启动应用程序时最后一列变得过大,无论如何我都无法解决这个问题!下面您可以看到查看代码: packag
我目前正在使用 JFace 为数据库插件功能开发 GUI(由于线程问题,无法使用任何其他方法),并且我的任务是使 GUI 看起来尽可能与数据库字段相似。我需要在文本字段内放置一个星号,如下所示: 我尝
我遇到了一个小问题,需要帮助。问题是我希望调用一个调用 html 页面的浏览器窗口。 html 文件在 3 个不同的浏览器中打开,因此其代码应该是正确的。实际问题是,它弹出页面无法显示的错误消息 这是
如何强制列表查看器更新大小?当我向列表中添加一个比现有大小更长的元素时,列表查看器应该展开: 我以这种方式更新列表查看器: lvConstraints.refresh(); 最佳答案 您确定在添加内容
我创建了一个 CheckboxTableViewer 来显示内容列表,如下图所示。问题是表格的滚动条无法正常工作。也许我缺少表格的一些布局参数? 这是代码: public class TableVie
我习惯于使用 Swing,通常使用 JOptionPane.showOptionDialog(...) 向用户显示一组要选择的选项。 现在我正在切换到 Jface 作为 Eclipse 插件...是否
JFace 标签提供程序框架有什么好的概述吗? JFace snippets并没有真正解释不同代之间的关系(3.2、3.3、3.4 之前等) 最佳答案 有许多很好的教程可用。您应该知道您需要了解完整的
JFace 中的另一个错误?我使用标准机制实现了自定义工具提示:CellLabelProvider 实现了方法 getToolTipText()。 一切似乎都很好,但事实并非如此。 我有一个 View
我是一名优秀的程序员,十分优秀!