这解释了字体指标

我想我们可以在这些SWT中获得"字体高度";
GC gc = new GC(label);
System.out.println( gc.textExtent(label.getText()) );
System.out.println( label.getFont().getFontData()[0].getHeight() );
Run Code Online (Sandbox Code Playgroud)
为什么这两个出局不一样?哪一个是正确的字符串高度?
我有一组数据传输对象(例如很多请求,响应消息类,如MainRequest,MainResponse,ShutDownRequest,ShutDownResponse)随着项目的发展,新类不断涌现.这些类必须(使用不同的公共XSD从各种XML格式序列化).随着项目的发展,新的XML格式也随之而来.
我的问题是如何围绕这两个要求设计我的类和接口,特别是在我应该放置实际(de)serration逻辑的地方.我应该编写一个可以接受各种DTO实例的静态服务,知道如何序列化它们吗?当新课程出现时,我必须触摸每个FormatXSeriaizer并添加新的覆盖.随着新格式的出现,我只需要编写新的FormatXSerializer类.
FormatASerializer.Serialize(XmlWriter writer, MainResponse r);
FormatASerializer.Serialize(XmlWriter writer, ShutDownResponse r);
FormatBSerializer.Serialize(XmlWriter writer, MainResponse r);
FormatBSerializer.Serialize(XmlWriter writer, ShutDownResponse r);
Run Code Online (Sandbox Code Playgroud)
或者DTO自己应该知道如何去做.所以我把它放在一个地方 - 每个DTO课程.随着新的DTO课程的出现,他们只需要实现各种格式的序列化.随着新格式的出现,我必须触及每个DTO课程.
myMainRequestInstace.Serialize(FormatTypeEnum type, XmlWriter writer);
Run Code Online (Sandbox Code Playgroud)
还是有完全不同的方法?我是否应该为序列化引入一个通用的接口并且有一些控制反转,所以我可以在运行时加载新格式的序列化器?
什么设计模式可以指导我在这里?
我可以研究.NET世界中的哪些开源代码来查看有关此主题的不同方法?
编辑:我知道框架中存在的一般序列化技术.我的问题更侧重于尊重这两个要求的类设计:多个xml格式和多个DTO(消息类型)随着项目的发展而不断涌现.
我希望我的2.3 Rails应用程序中的所有页面都有以前缀为url的URL:
www.example.com/app/
Run Code Online (Sandbox Code Playgroud)
我routes.rb按以下方式写了这篇文章:
# I named the first part of the url ':appl'
map.root :appl => "app", :controller => "home"
# Default routes
map.connect ':appl/:controller/:action/:id'
map.connect ':appl/:controller/:action/:id.:format'
Run Code Online (Sandbox Code Playgroud)
这一切都很好,除了map.resources我所拥有的
map.resources :pages
Run Code Online (Sandbox Code Playgroud)
现在无论我在哪里,edit_page_path或者page生成的url都不正确,因为app在开头没有插入.我试着namespace和scope,像我见过这里章节2.6,但没有成功.
我该怎么做?是:appl在路由的坏主意?
我在hibernate中有一个OneToMany关系定义如下:
@Entity
@Table(name = "groups")
public class Group extends BaseModel {// BaseModel defines id as @Id and @GeneratedValue
@OneToMany
@JoinColumn(name = "group_id")
private List<User> users;
// other fields, getters and setters omitted
}
@Entity
@Table(name = "users")
public class User extends BaseModel {
@ManyToOne
@JoinColumn(name = "group_id")
private Group group;
// other fields, getters and setters omitted
}
Run Code Online (Sandbox Code Playgroud)
列group_id位于users表中.
调用方法Group.getUsers()并User.getGroup()正常工作.但我还需要在列之后进行查询group_id:
Criteria criteria = Activator.getDefault().getSQLSession().createCriteria(User.class);
Criterion c = Restrictions.eq("group_id", 1); // an id …Run Code Online (Sandbox Code Playgroud) 在(默认包)中,我有一个名为"Bird"的类,它有一个名为"dialog"的方法.
我可以在同一个包中创建一个名为Class1的类,如下所示:
public class Class1
{
public static void main(String[] args)
{
Bird b = new Bird("Alexander",true,5);
b.dialog("tweet!");
}
}
Run Code Online (Sandbox Code Playgroud)
这实际上有效,我实际上可以tweet!在控制台中看到.
我的问题是:如果代码Class1位于包中,我需要在代码中添加什么Fundamental (而类Bird位于"默认包"中)?我收到一个错误:在这种情况下"鸟类型未被识别".我应该以某种方式表明包裹.
附带问题:1.什么是类路径?如何更改?我已经看到这个术语在几个与包相关的讨论的背景下被模糊地使用,但没有一个像我刚才给出的明确的例子.2.我见过多次名为xxx.bla.zzz的软件包 - 这是标准吗?我通常只使用一个通用名称(不是三个分隔的.)我理解一个包是Java替代其他语言的命名空间.如果有几个解决方案值得一提,我会很感激.谢谢!
我正在尝试创建一个 Bootstrap 4 表单,其中一些字段对于大于 sm 的屏幕应位于一行,否则应将它们放在 2 行中。
我尝试使用以下代码来做到这一点:
<div class="form-group row">
<label class="col-sm-2 col-form-label">File:</label>
<div class="col-sm-10 col-md-6">
<input class="form-control" type="text" />
</div>
<label class="col-sm-2 col-md-2 col-form-label">Type</label>
<div class="col-sm-4 col-md-2">
<select class="form-control"><option value=""></option></select>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
对于md + ,字段将位于一行: 2+6+2+2
对于sm,该行将为 2+10 (我们将其命名为A),下一个 - B - 2+4...
我的问题是,新的“行” A和B之间没有边距,就像我们有 2 个带有“行”类的 div 一样。
请参阅此小提琴: https: //jsfiddle.net/truesoft/q1djhp5b/第 1 行只是作为边距的示例,它在下一行之间有一个边距。但是当屏幕为smlabel时,当 Type并进入下一行时没有边距。我尝试为提交按钮留出边距,但如果我放置这些按钮,则在其他情况下将无法正常显示。select
哪种方法是最好的方法?
HAI
我想要使用POI API将单元格文本值转换为Excel中的数字.
单元格文本值,如'2,345',表示为数字.
我怎样才能做到这一点.
如果有人遇到这个问题,请告诉我...
我想在Ruby-on-Rails中显示页面中的项目列表.我使用偏爱
在我的index.html.erb文件中我有:
<%= @lista = News.find(:all, :order => Document::COL_DATE + ' DESC, id DESC')
render :partial => "newsitem",
:layout => "list_news",
:spacer_template => "spacer",
:collection => @lista
%>
Run Code Online (Sandbox Code Playgroud)
在_list_news.html.erb我有:
<div class="news">
<%= yield %>
</div>
Run Code Online (Sandbox Code Playgroud)
在_spacer.html.erb 我有<hr/>
在_newsitem.html.erb我有
<%= newsitem_counter + 1 %>
<!-- Code to print details for one item -->
Run Code Online (Sandbox Code Playgroud)
问题是它多次打印列表:
如果列表有3个项目,则显示3次:1,2,3,1,2,3,1,2,3.
如果它有7个项目,那么这些项目将被打印7次.
我的代码有什么问题?
我正在设计一个图像解码器,作为第一步,我试图复制使用cie打开文件,并将其内容写入新文件.下面是我使用的代码.
while((c=getc(fp))!=EOF)
fprintf(fp1,"%c",c);
Run Code Online (Sandbox Code Playgroud)
其中fp是源文件,fp1是目标文件.程序执行时没有任何错误,但图像文件(".bmp")未正确复制.我观察到复制文件的大小较小,只有20%的图像可见,其他都是黑色.当我尝试使用简单的文本文件时,副本已完成.
你知道问题是什么吗?
不是一个sql程序员.它在我看来它正在寻找今天exch_date的任何东西并删除它.那是对的吗?
DELETE FROM dbo.Table where
DATEADD(dd, DATEDIFF(dd,0,exch_Date),0) = DATEADD(dd, DATEDIFF(dd,0,GETDATE()),0)
Run Code Online (Sandbox Code Playgroud) 我是ruby-on-rails的初学者,我花了最后一小时尝试做以下事情:
我有一个ruby-on-rails应用程序 - 包含帖子和类别的博客.我希望有另一个帖子的URL(我希望有http://localhost:3000/news而不是http://localhost:3000/posts)首先我试图将控制器和类替换Posts为News,但我放弃了(因为annoyng奇异复数的事情).然后在我的I替换map.resources :posts(案例1)
map.resources :news, :controller => "posts" #case 2
Run Code Online (Sandbox Code Playgroud)
要么
map.resources :posts, :as => 'news' #case 3
Run Code Online (Sandbox Code Playgroud)
在routes.rb我上看到的一些网站.它也不起作用.
我怎样才能做到这一点?
编辑:
输出rake routes是(只有第一行):
对于案例1和3:
posts GET /posts {:action=>"index", :controller=>"posts"}
formatted_posts GET /posts.:format {:action=>"index", :controller=>"posts"}
POST /posts {:action=>"create", :controller=>"posts"}
POST /posts.:format {:action=>"create", :controller=>"posts"}
new_post GET /posts/new {:action=>"new", :controller=>"posts"}
formatted_new_post GET /posts/new.:format {:action=>"new", :controller=>"posts"}
edit_post GET /posts/:id/edit {:action=>"edit", :controller=>"posts"}
formatted_edit_post GET /posts/:id/edit.:format {:action=>"edit", :controller=>"posts"} …Run Code Online (Sandbox Code Playgroud) 给定3个变量(homeNumber,mobileNumber和workNumber),它们可以为null,但至少其中一个是String,我需要返回一个String数组,以便稍后在Android对话框中使用它.我这样做有麻烦.我尝试在ArrayList中执行它并删除所有null元素,这样就只有我想要的只有字符串的ArrayList,但是当我尝试将它更改为数组时,我在最后一行得到一个ClassCast异常.
ArrayList numberList = new ArrayList();
numberList.add(homeNumber);
numberList.add(mobileNumber);
numberList.add(workNumber);
numberList.removeAll(Collections.singleton(null));
final String[] items= (String[]) numberList.toArray();
Run Code Online (Sandbox Code Playgroud)
任何想法如何解决这一问题?
java ×5
routing ×2
.net ×1
apache-poi ×1
arraylist ×1
bootstrap-4 ×1
c ×1
class-design ×1
collections ×1
copying ×1
css ×1
filehandle ×1
font-size ×1
fonts ×1
hibernate ×1
html ×1
one-to-many ×1
package ×1
sql ×1
swt ×1
t-sql ×1