TitleAreaDialog-调整标题图像 - java

因此,我正在创建要放置在标题区域中的图像。除了仅显示图像的1/4以外,其他所有功能都可以正常工作吗?

我的图像实际上是文本,并且图像合并在一张图像中EX:JKTeater [] <-图标
所以现在只有JKT在标题区域显示

这是create()方法

public void create() {
  super.create();
  setTitle("JKTeater Application");
  setMessage("Hello World");
  if (image != null) setTitleImage(image);

}
  • 标题区号是否允许特定大小?
  • 是否可以将图像的末尾放在标题区域的末尾?
  • 您可以使用一种布局来移动它吗?
  • 如何在标题区域的底部获得黑色的水平线?
  • 编辑

    我敢肯定,要问您是否真的可以将背景色从基本色更改为渐变色,将会引起很大的兴趣

    参考方案

    这是一个示例TitleAreaDialog。如您所见,Image完全显示并向右对齐:

    public static void main(String[] args) {
        final Shell shell = new Shell();
        shell.setLayout(new FillLayout());
    
        TitleAreaDialog dialog = new MyTitleAreaDialog(shell);
        dialog.setTitleAreaColor(Display.getDefault().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND).getRGB());
        dialog.open();
    }
    
    private static class MyTitleAreaDialog extends TitleAreaDialog
    {
        private Image image;
    
        public MyTitleAreaDialog(Shell parentShell) {
            super(parentShell);
            image = new Image(Display.getDefault(), "/home/baz/Desktop/StackOverflow.png");
        }
    
        @Override
        public boolean close() {
            if (image != null)
                image.dispose();
            return super.close();
        }
    
        @Override
        protected Control createContents(Composite parent) {
            Control contents = super.createContents(parent);
    
            setTitle("Title");
            setMessage("Message");
    
            if (image != null)
                setTitleImage(image);
    
            return contents;
        }
    
        @Override
        protected Control createDialogArea(Composite parent) {
            Composite composite = (Composite) super.createDialogArea(parent);
    
            // YOUR LINE HERE!
            Label line = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL);
            line.setLayoutData(new GridData(SWT.FILL, SWT.END, true, true));
    
            return composite;
        }
    }
    

    标题区号是否允许特定大小?

    AFAIK对大小没有限制。我尝试使用大于屏幕分辨率的Image并完全显示出来。 Dialog显然不可用。

    我敢肯定,要问您是否真的可以将背景色从基本色更改为渐变色,将会引起很大的兴趣

    可以使用dialog.setTitleAreaColor(RGB)更改背景颜色(在本例中为小部件背景颜色),但是不能使用渐变。有一个不推荐使用的方法 getTitleArea() ,它将返回标题区域Composite,但是我真的不建议使用该方法。

    如何在标题区域的底部获得一条黑色的水平线?

    通过使用以下命令获得底部的行:

    Label line = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL);
    line.setLayoutData(new GridData(SWT.FILL, SWT.END, true, true));
    

    您可以使用布局来移动它吗?

    这里有一个类似的问题:

    Moving an image of a TitleAreaDialog to the left

    那里的答案说明了如何更改TitleAreaDialog的详细信息。也许读他们。

    swt.jar在哪里? - java

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

    Java:正则表达式模式匹配器是否有大小限制? - java

    我的模式类似于OR:“word1 | word2 | word3”我大约有800个字。可能有问题吗? 参考方案 您仅受记忆和理智的限制。 :)

    Java:线程池如何将线程映射到可运行对象 - java

    试图绕过Java并发问题,并且很难理解线程池,线程以及它们正在执行的可运行“任务”之间的关系。如果我创建一个有10个线程的线程池,那么我是否必须将相同的任务传递给池中的每个线程,或者池化的线程实际上只是与任务无关的“工人无人机”可用于执行任何任务?无论哪种方式,Executor / ExecutorService如何将正确的任务分配给正确的线程? 参考方案 …

    JAVA:字节码和二进制有什么区别? - java

    java字节代码(已编译的语言,也称为目标代码)与机器代码(当前计算机的本机代码)之间有什么区别?我读过一些书,他们将字节码称为二进制指令,但我不知道为什么。 参考方案 字节码是独立于平台的,在Windows中运行的编译器编译的字节码仍将在linux / unix / mac中运行。机器代码是特定于平台的,如果在Windows x86中编译,则它将仅在Win…

    java:继承 - java

    有哪些替代继承的方法? java大神给出的解决方案 有效的Java:偏重于继承而不是继承。 (这实际上也来自“四人帮”)。他提出的理由是,如果扩展类未明确设计为继承,则继承会引起很多不正常的副作用。例如,对super.someMethod()的任何调用都可以引导您通过未知代码的意外路径。取而代之的是,持有对本来应该扩展的类的引用,然后委托给它。这是与Eric…