`

控件和背景图片一样大小

 
阅读更多

控件和背景图片一样大小

 

import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.layout.RowData;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;

public class UsingImage {
    static Display display = Display.getDefault();
    static Image backgroundImage = new Image(display, UsingImage.class
            .getResourceAsStream("270x320_note_background.png"));

    static Image image2 = new Image(display, UsingImage.class
            .getResourceAsStream("48x48_package_viewer.png"));

    public static void main(String[] args) {
        Shell shell = new Shell(display);
        shell.setSize(1000, 600);

        createNotePage(shell);

        shell.open();
        while (!shell.isDisposed()) {
            if (!display.readAndDispatch())
                display.sleep();
        }
        backgroundImage.dispose();

        display.dispose();
    }

    private static void createNotePage(Shell shell) {
        int w = backgroundImage.getImageData().width;
        int h = backgroundImage.getImageData().height;

        Composite panel = new Composite(shell, SWT.NONE);
        panel.setSize(w, h);
        panel.setLayout(new FormLayout());

        Composite topPanel = new Composite(panel, SWT.NONE);
        FormData formdata = new FormData();
        formdata.left = new FormAttachment(0,5);
        formdata.right = new FormAttachment(100,-5);
        formdata.top = new FormAttachment(0,2);
        formdata.bottom = new FormAttachment(50, -10);
        topPanel.setLayoutData(formdata);

        Composite bottomPanel = new Composite(panel, SWT.NONE);
        FormData buttonDataA = new FormData();
        buttonDataA.left = new FormAttachment(0,5);
        buttonDataA.right = new FormAttachment(100,-5);
        buttonDataA.top = new FormAttachment(50,24);
        buttonDataA.bottom = new FormAttachment(100, -12);
        bottomPanel.setLayoutData(buttonDataA);

        Label backgroudLable = new Label(panel, SWT.NONE);
        backgroudLable.setImage(backgroundImage);
        FormData data1 = new FormData();
        backgroudLable.setLayoutData(data1);

        createNoteArea(topPanel, bottomPanel);

        panel.layout();
    }

    private static void createNoteArea(Composite topPanel, Composite bottomPanel) {
        createTopPanelArea(topPanel);
        createBottomPanelArea(bottomPanel);
    }

    private static void createBottomPanelArea(Composite panel) {
        panel.setLayout(new RowLayout());
        for(int i=0; i<6; i++) {
            Label lable = new Label(panel, SWT.NONE);
            lable.setImage(image2);
        }
    }

    private static void createTopPanelArea(Composite panel) {
        panel.setLayout(new RowLayout());
        Table table = creatResourceTable(panel);
        table.setLayoutData(new RowData(-1, 90));
        table = creatClkTable(panel);
        table.setLayoutData(new RowData(-1, 25));
    }

    public static Table creatResourceTable(Composite panel) {
        Table table = new Table(panel, SWT.NONE | SWT.FULL_SELECTION | SWT.NO_SCROLL);
        table.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
        table.setHeaderVisible(false);

        String[] columns = new String[]{"name","used","total","ratio"};
        for(String name : columns) {
            TableColumn column = new TableColumn(table, SWT.NONE);
            column.setText(name);
            column.setWidth(58);
        }

        String[] input = new String[]{"LUT", "100", "1200", "50%"};
        TableItem item = new TableItem(table, SWT.NONE);
        for(int i=0; i < input.length; i++) {
            item.setText(i, input[i]);
        }

        input = new String[]{"FF", "100", "1200", "50%"};
        item = new TableItem(table, SWT.NONE);
        for(int i=0; i < input.length; i++) {
            item.setText(i, input[i]);
        }
        input = new String[]{"BRAM", "1", "10", "10%"};
        item = new TableItem(table, SWT.NONE);
        for(int i=0; i < input.length; i++) {
            item.setText(i, input[i]);
        }
        input = new String[]{"MULT", "0", "10", "0%"};
        item = new TableItem(table, SWT.NONE);
        for(int i=0; i < input.length; i++) {
            item.setText(i, input[i]);
        }
        return table;
    }

    public static Table creatClkTable(Composite panel) {
        Table table = new Table(panel, SWT.NONE | SWT.FULL_SELECTION);
        table.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
        table.setHeaderVisible(false);

        String[] columns = new String[]{"clkName", "hz"};
        for(String name : columns) {
            TableColumn column = new TableColumn(table, SWT.NONE);
            column.setText(name);
            column.setWidth(116);
        }

        String[] input = new String[]{"clk_pad_i", "123.1 MHZ"};
        TableItem item = new TableItem(table, SWT.NONE);
        for(int i=0; i < input.length; i++) {
            item.setText(i, input[i]);
        }

        input = new String[]{"bit_clk_i", "102.9 MHZ"};
        item = new TableItem(table, SWT.NONE);
        for(int i=0; i < input.length; i++) {
            item.setText(i, input[i]);
        }
        return table;
    }
}

 



 

 

  • 大小: 7.6 KB
  • 大小: 2.2 KB
  • 大小: 33.2 KB
分享到:
评论

相关推荐

    可以设置背景图片的TreeView控件

    如果需要背景图片适应控件大小,可以调整`DrawImage`方法中的参数,比如使用`Graphics.InterpolationMode`设置图像的缩放质量,以及使用`Graphics.CompositingMode`来控制如何将图片与已有的内容合并。 5. **优化...

    MFC基于对话框 添加背景图片

    2. **加载图片资源**:如同处理背景图片一样,你需要在资源文件中添加图像资源,然后在控件类的OnPaint()函数中绘制图片。 3. **自定义控件绘图**:重写OnPaint(),使用CDC对象来绘制图片。可以使用DrawIcon或Draw...

    Android 自定义控件 组合控件

    2. **onMeasure()**:测量控件的大小,这是布局流程的一部分,需要根据子视图和自身约束来确定控件的尺寸。 3. **onLayout()**:布局子视图,根据测量的结果将子视图放置到合适的位置。 4. **onDraw()**:绘制控件,...

    Delphid控件

    使用PngImage控件时,开发者可以在Delphi的组件面板上找到它,然后像其他控件一样将其拖放到窗体上。通过属性设置,可以调整图像的显示方式,如大小、位置、透明度等。事件处理函数则可以用来响应用户的交互,比如...

    android之自定义开关控件

    在项目的其他布局文件中,像使用普通Android控件一样引入自定义开关,并通过设置属性来自定义其外观和行为。 六、示例代码 ```xml &lt;!-- 在res/layout中创建布局文件 --&gt; android:id="@+id/custom_toggle" ...

    自定义控件的例子

    在Android开发中,自定义控件(Custom View)是提升应用独特性和用户体验的重要手段。它允许开发者根据项目需求创建具有特殊功能或外观的组件,从而超越Android SDK中预定义的视图类。以下是对"自定义控件的例子"这...

    HTML在线编辑控件

    这种控件通常被称为WYSIWYG(What You See Is What You Get)编辑器,使得非编程背景的用户也能方便地创建和修改网页内容。以下是对这个主题的详细讲解: 1. **WYSIWYG编辑器概念**:WYSIWYG编辑器提供了一个图形...

    C#自定义控件(usercontrol)--美化单选按钮和复选按钮

    为了实现美化,我们可能还需要添加其他元素,如背景图片或自定义边框。 2. **代码逻辑**:在UserControl的代码-behind文件中,我们可以编写事件处理程序来响应控件的行为。例如,可以为RadioButton和CheckBox的...

    VB编程资源大全(控件 其它3)

    (29KB) 65,s008.ZIP 可以把任意形状的图片转换为窗体(包含帮助文件和示例)(36KB) 66,s007.ZIP 建立一个如同vb里属性栏一样的东东,不仅形似,神也似(137KB) 67,s006.ZIP Check Box 和 List ...

    VB编程资源大全(控件 其它1)

    (29KB) 65,s008.ZIP 可以把任意形状的图片转换为窗体(包含帮助文件和示例)(36KB) 66,s007.ZIP 建立一个如同vb里属性栏一样的东东,不仅形似,神也似(137KB) 67,s006.ZIP Check Box 和 List ...

    带背景的工具栏

    在Windows Forms应用开发中,创建一个带有背景图片的工具栏是一项常见的需求,它可以提升应用程序的视觉效果和用户体验。本文将详细讲解如何使用C#语言在WinForms环境下实现这个功能。 首先,我们需要理解WinForms...

    免费DataGridView打印及.NET轻松打印控件5.0版

    本DataGridView打印控件和.NET轻松打印控件5.0版(含报表模板设计组件)2012年5月12日修改完成,完全免费,在.NET2.0及以上环境下都可以使用(VB、C#等都可以用),有帮助文档与使用实例。 与4.95版相比,控件5.0版...

    Qt_button文字和图片分开

    还可以根据需要调整图片和文字的位置、大小以及样式,以满足不同设计需求。 为了更好地理解这一过程,你可以参考压缩包中的`CustomButton`示例代码,这将包含一个完整的实现,包括头文件和源文件,以及可能的资源...

    .Net里面TextBox所见即所得编辑器控件

    这些控件通常功能强大,支持丰富的文本格式化、图片插入、表格操作、链接管理等,并且往往带有良好的文档支持和示例代码。 2. 自定义实现:如果你不想依赖外部库,可以考虑使用WebBrowser控件或者基于HTML和...

    Android中ImageView.src设置图片拉伸、填满控件的方法

    当需要将图片设置为ImageView的源时,有时我们希望图片能够适应或填满整个控件,而不是保持原比例显示,这通常涉及到图片的拉伸和填充策略。在给定的标题和描述中,问题的核心是如何使ImageView中的图片正确拉伸并填...

    C#自定义控件--美化ComboBox源码

    2. 自定义字体和文本颜色:修改ComboBox的Font属性,可以调整字体大小和样式;通过ForeColor属性设置文本颜色。 3. 鼠标悬停效果:在OnMouseEnter和OnMouseLeave事件中改变控件的外观,如边框颜色、背景色等,以增加...

    ImageButton控件

    同时,可以通过`ForeColor`和`BackColor`属性改变文字和背景颜色,`Font`属性改变文字的字体、大小和样式。 四、图像的动态加载和切换 在运行时,你可以根据需要动态地更改`ImageButton`的`Image`属性,实现图像的...

    PNG Delphi 处理PNG图像的Delphi控件

    通过这些实例,开发者可以快速理解和学习如何操作 PNG 图片,如加载、保存、裁剪、旋转、调整大小、添加透明效果等。这些实例通常包括源代码,可供开发者参考和直接集成到自己的项目中。 在使用 PNGDelphi 控件时,...

Global site tag (gtag.js) - Google Analytics