控件和背景图片一样大小
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; } }
相关推荐
如果需要背景图片适应控件大小,可以调整`DrawImage`方法中的参数,比如使用`Graphics.InterpolationMode`设置图像的缩放质量,以及使用`Graphics.CompositingMode`来控制如何将图片与已有的内容合并。 5. **优化...
2. **加载图片资源**:如同处理背景图片一样,你需要在资源文件中添加图像资源,然后在控件类的OnPaint()函数中绘制图片。 3. **自定义控件绘图**:重写OnPaint(),使用CDC对象来绘制图片。可以使用DrawIcon或Draw...
2. **onMeasure()**:测量控件的大小,这是布局流程的一部分,需要根据子视图和自身约束来确定控件的尺寸。 3. **onLayout()**:布局子视图,根据测量的结果将子视图放置到合适的位置。 4. **onDraw()**:绘制控件,...
使用PngImage控件时,开发者可以在Delphi的组件面板上找到它,然后像其他控件一样将其拖放到窗体上。通过属性设置,可以调整图像的显示方式,如大小、位置、透明度等。事件处理函数则可以用来响应用户的交互,比如...
在项目的其他布局文件中,像使用普通Android控件一样引入自定义开关,并通过设置属性来自定义其外观和行为。 六、示例代码 ```xml <!-- 在res/layout中创建布局文件 --> android:id="@+id/custom_toggle" ...
在Android开发中,自定义控件(Custom View)是提升应用独特性和用户体验的重要手段。它允许开发者根据项目需求创建具有特殊功能或外观的组件,从而超越Android SDK中预定义的视图类。以下是对"自定义控件的例子"这...
为了实现美化,我们可能还需要添加其他元素,如背景图片或自定义边框。 2. **代码逻辑**:在UserControl的代码-behind文件中,我们可以编写事件处理程序来响应控件的行为。例如,可以为RadioButton和CheckBox的...
(29KB) 65,s008.ZIP 可以把任意形状的图片转换为窗体(包含帮助文件和示例)(36KB) 66,s007.ZIP 建立一个如同vb里属性栏一样的东东,不仅形似,神也似(137KB) 67,s006.ZIP Check Box 和 List ...
(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版(含报表模板设计组件)2012年5月12日修改完成,完全免费,在.NET2.0及以上环境下都可以使用(VB、C#等都可以用),有帮助文档与使用实例。 与4.95版相比,控件5.0版...
还可以根据需要调整图片和文字的位置、大小以及样式,以满足不同设计需求。 为了更好地理解这一过程,你可以参考压缩包中的`CustomButton`示例代码,这将包含一个完整的实现,包括头文件和源文件,以及可能的资源...
这些控件通常功能强大,支持丰富的文本格式化、图片插入、表格操作、链接管理等,并且往往带有良好的文档支持和示例代码。 2. 自定义实现:如果你不想依赖外部库,可以考虑使用WebBrowser控件或者基于HTML和...
当需要将图片设置为ImageView的源时,有时我们希望图片能够适应或填满整个控件,而不是保持原比例显示,这通常涉及到图片的拉伸和填充策略。在给定的标题和描述中,问题的核心是如何使ImageView中的图片正确拉伸并填...
2. 自定义字体和文本颜色:修改ComboBox的Font属性,可以调整字体大小和样式;通过ForeColor属性设置文本颜色。 3. 鼠标悬停效果:在OnMouseEnter和OnMouseLeave事件中改变控件的外观,如边框颜色、背景色等,以增加...
同时,可以通过`ForeColor`和`BackColor`属性改变文字和背景颜色,`Font`属性改变文字的字体、大小和样式。 四、图像的动态加载和切换 在运行时,你可以根据需要动态地更改`ImageButton`的`Image`属性,实现图像的...
通过这些实例,开发者可以快速理解和学习如何操作 PNG 图片,如加载、保存、裁剪、旋转、调整大小、添加透明效果等。这些实例通常包括源代码,可供开发者参考和直接集成到自己的项目中。 在使用 PNGDelphi 控件时,...
这种控件通常被称为WYSIWYG(What You See Is What You Get)编辑器,使得非编程背景的用户也能方便地创建和修改网页内容。以下是对这个主题的详细讲解: 1. **WYSIWYG编辑器概念**:WYSIWYG编辑器提供了一个图形...