- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我实际上是在尝试在 Java SWT 中重现类似的东西,但到目前为止还没有成功:
我看到的问题是,据我所知,SWT.TITLE
需要显示 SWT.CLOSE
、SWT.MAX
Và SWT.MIN
谁能告诉我是否有一种很好的方法可以做到这一点,既可以通过设置单个 shell 的样式,也可以通过使用多个 shell 并访问 close、min、max 组件?
câu trả lời hay nhất
在这个答案中,我假设针对 Windows 就足够了。如果您想要便携性,请立即停止阅读。
不幸的是,当您删除 WS_CAPTION GWL_STYLE 时,按钮也会丢失。我不能肯定地说,但我不认为这可以通过摆弄窗口样式来完成。也许如果您使用 AERO 就可以,但这会限制可以运行代码的操作系统。
如果您坚持要这个,我只能为您提供次优的选择:放置您自己的按钮,但让它们看起来尽可能接近原生字幕按钮。
这是主题的样子:
这是经典主题的样子:
还有对齐按钮、在热/按下或最大化/恢复时更改状态的工作,但这是一个起点。
我知道这与您的要求不完全相同,但也许有帮助。
下面是创建窗口的代码:
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.internal.win32.OS;
import org.eclipse.swt.internal.win32.RECT;
import org.eclipse.swt.widgets.*;
public class CaptionItemSnippet {
private static final char[] WINDOW_CLASS = className("WINDOW");
private static final int WP_MINBUTTON = 15;
private static final int WP_MAXBUTTON = 17;
private static final int WP_CLOSEBUTTON = 18;
private static final int DFC_CAPTION = 1;
private static final int DFCS_CAPTIONCLOSE = 0x0000;
private static final int DFCS_CAPTIONMIN = 0x0001;
private static final int DFCS_CAPTIONMAX = 0x0002;
private static final int DFCS_CAPTIONRESTORE = 0x0003;
private static final int DFCS_CAPTIONHELP = 0x0004;
public static void main(String[] args) {
final Display display = new Display();
final Shell shell = new Shell(display);
int gwlStyle = OS.GetWindowLong(shell.handle, OS.GWL_STYLE);
//remove title bar
gwlStyle &= ~OS.WS_CAPTION;
// add maximize button: does not work
gwlStyle |= OS.WS_SYSMENU | OS.WS_MAXIMIZEBOX;
OS.SetWindowLong(shell.handle, OS.GWL_STYLE, gwlStyle & ~OS.WS_CAPTION);
final Button minimizeButton = createButton(shell, WP_MINBUTTON, DFCS_CAPTIONMIN);
minimizeButton.setBounds(125, 0, 20, 20);
final Button maxButton = createButton(shell, WP_MAXBUTTON, DFCS_CAPTIONMAX);
maxButton.setBounds(145, 0, 20, 20);
final Button closeButton = createButton(shell, WP_CLOSEBUTTON, DFCS_CAPTIONCLOSE);
closeButton.setBounds(165, 0, 20, 20);
shell.setSize(200, 200);
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
private static Button createButton(final Composite parent, final int partId, final int uState) {
final Button button = new Button(parent, SWT.PUSH);
button.addListener(SWT.Paint, new Listener() {
@Ghi đè
public void handleEvent(Event e) {
final Point size = button.getSize();
final RECT rect = new RECT();
rect.left = 0;
rect.right = size.x;
rect.top = 0;
rect.bottom = size.y;
if (OS.IsAppThemed()) {
final int theme = OS.OpenThemeData(parent.handle, WINDOW_CLASS);
OS.DrawThemeBackground(theme, e.gc.handle, partId, OS.TS_NORMAL, rect, null);
OS.CloseThemeData(theme);
} khác {
OS.DrawFrameControl(e.gc.handle, rect, DFC_CAPTION, uState);
}
}
});
return button;
}
private static char[] className(String s) {
final char[] chars = new char[s.length() + 1];
System.arraycopy(s.toCharArray(), 0, chars, 0, s.length());
chars[chars.length - 1] = 0;
return chars;
}
}
关于java - 没有 SWT.TITLE 的 SWT.CLOSE、SWT.MAX、SWT.MIN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14648693/
有什么方法可以覆盖无法直接编辑的页面标题,只能在页眉中添加 Javascript? 我不能直接编辑的行是: Title of the page 我能想到的解决这个问题的唯一方法是在我可以通过我的门户后
这是我的基础文件 {% load static %} {% include "feed/header.html" %} {% block content%} {% endblock %} {% inc
请说明 之间有什么区别标记和 标签。 Page title 如果两者都使用,哪个最优先? 我观察到一些网站同时具有 和 tags 和 两者相同,这是预期的,请确认? 如果我们不使用 标签标题,我
我有一个带有唯一title的表_primary,并且我有一个需要设置引用title的表_secondary > 对于 _primary 表。 最佳答案 尝试这个解决方案并让我知道它对您有用。 ALTE
我正在尝试学习使用 PDO 而不是 MySQLi 进行数据库访问,但我在从数据库中选择数据时遇到了问题。我想使用: $STH = $DBH->query('SELECT * FROM ratings
我了解 title 和 alt 属性的用途,但我只是不了解它们的最佳用途,或者我是否可以使用相同的 title /alt 不止一次。 例如,以一个关于狗的网站为例: 根据我的理解,所有 img 标签都
我分配了一个带有标题 (initWithTitle) 的 UITabBarItem 并将其连接到 UINavigationController。 我发现,如果导航 Controller 的 Root
我有标签栏和导航栏。在导航栏中我有表格 View 。问题是,当我在 IB 中将标题设置为选项卡栏,然后在 TableView 中设置标题时,选项卡栏标题将更改为 TableView 中的标题,并且我在
在我的 JSP 页面中,我使用 显示页面标题,有时可以,但有时页面显示无法cpmplie代码 。所以我将代码更改为 ${TITLE} ,也可以。 有什么不同和${TITLE}在jsp中? 这是我的页
我目前正在向 Jade 和 node.js 介绍自己 由于我想避免冗余,我想到将域名附加到当前标题,例如Blog | example.com 我的 Jade 模板得到了 Blog通过 Node.js
//Sorting userDefined object from ArrayList<>... import java.io.*; import java.util.*; class Song
我的网站有这两个元标记,它们目前具有相同的值: 第二个是 facebook 连接所需的格式。 这是否意味着第一个是多余的并且可以删除? 最佳答案 最好同时存在这两个标签。该标签告诉搜索引擎有
我现在对 ASP.NET MVC 的 Razor ViewEngine 感到困惑。 大多数人会说: View.Title 与相同 ViewData["Title"] 运行应用程序后我得到了这个 Com
UIViewController 的 title 属性的用途是什么,不能用 navigationItem.title 设置标题吗? 两者似乎都有效,我只是想知道为什么会有这种看似重复的功能。 最佳答案
我仍在学习如何将 API 数据与 react 和 nextjs 一起使用。但是,为什么我的函数只在我编写 {props.props.title} 而不是我期望的 {props.title} 时起作用?
我正在尝试编写一个从URL提取的正则表达式,但是问题是“。”与我们已经知道的不匹配换行符。如何编写正则表达式以匹配和提取pageTitle(。*?),但换行符可能介于 我在用grails。 最佳答案
我仍在学习如何将 API 数据与 react 和 nextjs 一起使用。但是,为什么我的函数只在我编写 {props.props.title} 而不是我期望的 {props.title} 时起作用?
我正在 github 上创建一个库,所以我为此使用了一个 Markdown 文件,其结构如下: # My main title ## My first section ... ## My second
我在某些地方看到,为了从 props 中获取 title 的值,我们使用 {`${props.title} `} 而在其他一些地方,我们使用它 {props.title} 有什么区别? 最佳答案 第一
我想使用 IMG 标签的 TITLE 属性,为图像创建标题: HTML CSS img[title]:after{content:attr(title);} 但是无论是在 IE、Firefox 还是
Tôi là một lập trình viên xuất sắc, rất giỏi!