2015-07-03 32 views
1

在为Web应用程序设计用户界面时,我们有用于响应式设计界面的CSS和html。使用JAVA的Windows桌面应用程序的响应式UI设计

但是在设计桌面应用程序时,如何获得响应式设计界面。我需要将我的应用程序界面放在不同大小的屏幕上,例如台式机,笔记本电脑,标签等。

我该怎么做,使用JAVA?

+0

查看[布局管理器](https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html)您可能可以使用精心挑选的布局经理。 – Codebender

+0

“回应”通常意味着“迅速反应”。你是否意味着适应不同尺寸屏幕的用户界面? – DJClayworth

回答

1

如果您愿意使用JavaFX,则可以使用WebView设计您的应用程序。这使您可以使用CSS在您的用户界面中实现响应。然后,您可以添加ResponsiveFX库,它基本上模仿Bootstrap's响应式API的子集。

从上面的ResponsiveFX链接转述,你在Java代码中启用响应处理一行:

ResponsiveHandler.addResponsiveToWindow(primaryStage); 

然后,添加适当的hidden-*visible-*类的元素:

TableView table = new TableView(items); 
table.getStyleClass().addAll("visible-lg", "visible-md"); 

ListView list = new ListView(items); 
list.getStyleClass().addAll("visible-xs", "visible-sm"); 

pane.getChildren().addAll(table, list); 

或者更有效地,您可以为想要支持的不同屏幕尺寸定义伪类,并使用这些伪类而不是隐藏/显示相同元素的多个版本。

从链接(CSS)

工具栏例如:从网站(JAVA)

#toolbar { 
    -fx-background-color: deepskyblue; 
} 

#toolbar:extreme-small-device { 
    -fx-padding: 1 1 0 1; 
} 

#toolbar:small-device { 
    -fx-padding: 2 2 1 2; 
} 

#toolbar:medium-device { 
    -fx-padding: 6 6 1 6; 
} 

#toolbar:large-device { 
    -fx-padding: 6 6 1 6; 
    -fx-background-image: url(blue-background.png); 
} 

工具栏例如:

Toolbar myToolbar = new Toolbar(...); 
myToolbar.setId(toolbar); 
pane.getChildren().add(myToolbar); 

(公平的警告,我没有用ResponsiveFX自己,所以不能保证其有效性)

1

构建GUI时,我建议使用layout managers,如边框布局或框布局,它们可以帮助您在窗口大小调整时移动项目。与他们一起玩来了解他们,并找出哪一个最适合您的需求。同时关注GridBag Layout,它是一个更高级的布局管理器,但在掌握时非常有用。

至于以不同的屏幕分辨率/尺寸适配应用界面,您可以为应用设置最小和最大窗口大小。