- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我实现了一个具有 3 个 Pane 的 Java SWT SashForm:
SashForm oSash = new SashForm(cmptParent, SWT.NONE);
GridLayout gridLayout = new GridLayout();
gridLayout.numColumns = 3;
oSash.setLayout(gridLayout);
oSash.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
Composite oPaneLeft = new Composite(oSash, SWT.NONE);
...
Composite oPaneMiddle = new Composite(oSash, SWT.NONE);
...
Composite oPaneRight = new Composite(oSash, SWT.NONE);
这个想法是有一个固定大小的中间分区。设置初始宽度很简单。
我希望能够通过拖动中间来调整表单的大小。用户单击中间并向左或向右拖动,从而保持中间 Pane 固定,只需向左或向右滑动。我能够按如下方式实现此功能:
private static Boolean sisResizeSashMiddle = false;
private static int siPosSashMiddleOffset = 0;
...
cmptPaneMiddle = new Composite(cmptParent, SWT.NONE);
cmptPaneMiddle.addMouseListener(new MouseAdapter()
{
@Override
public void mouseDown(MouseEvent arg0)
{
// The user wishes to resize the sash.
AppMain.sisResizeSashMiddle = true;
AppMain.siPosSashMiddleOffset = arg0.x - AppMain.siPosSashMiddleStart;
}
@Override
public void mouseUp(MouseEvent arg0)
{
// The user finished resizing the sash.
AppMain.sisResizeSashMiddle = false;
}
});
cmptPaneMiddle.addMouseMoveListener(new MouseMoveListener()
{
public void mouseMove(MouseEvent arg0)
{
// Only resize the sashes if user hold down the mouse while dragging.
if (true == AppMain.sisResizeSashMiddle)
{
// Compute the width of each sash.
int icxShell = shell.getSize().x;
int icxLeft = arg0.x - AppMain.siPosSashMiddleOffset;
int icxMiddle = AppMain.BrowserSash_Pane_Middle_Width;
int icxRight = shell.getSize().x - icxLeft - icxMiddle;
// Compute the weights.
int iWeightLeft = 10000 * icxLeft / icxShell;
int iWeightMiddle = 10000 * icxMiddle / icxShell;
int iWeightRight = 10000 * icxRight / icxShell;
// Set the weights.
int[] weights = new int[] {iWeightLeft, iWeightMiddle, iWeightRight};
oSash.setWeights(weights);
}
}
});
我的问题是滑动实现是不稳定的,绝对不流畅。有没有更好的方法来获得相同的效果,只是平滑而没有生涩行为?
最佳答案
尝试在 SashForm
上使用 SWT.SMOOTH
标志:
SashForm oSash = new SashForm(cmptParent, SWT.SMOOTH);
关于Java SWT 平滑调整 Tripple SashForm 常量中间大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26222160/
我实现了一个具有 3 个 Pane 的 Java SWT SashForm: SashForm oSash = new SashForm(cmptParent, SWT.NONE); GridLayo
如果我尝试使用三等号比较 javascript 中的两个对象, object1 === object2 它同时检查了类型和值。 我的问题是,先测试哪个?类型还是值? 最佳答案 首先检查类型: http
我正在尝试建立一个 Siamese 神经网络和 triple neural network在自定义大数据集上 Keras有 ImageDataGenerator这使得输入数据的生成为 regular神
如何格式化 arr 和 myname? arr = { 'pincode':'pincode', 'username':'username', 'password':'password', 'acti
在代码示例中,我多次发现#(三元数字符)用作特定的分隔符。但我在OpenAI API文档中找不到任何信息。这是不正式的吗?旧版OpenAI留下的某种遗产?。例如。
我是一名优秀的程序员,十分优秀!