本文的目的是介绍如何在没有CSS的情况下更改列标题的字体的详细情况,特别关注没有css样式的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解如何在没有CSS的情况下更改
本文的目的是介绍如何在没有 CSS 的情况下更改列标题的字体的详细情况,特别关注没有css样式的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解如何在没有 CSS 的情况下更改列标题的字体的机会,同时也不会遗漏关于angular – 如何在没有* ngIf的情况下渲染ng-container或ng-template?、C / Linux:如何在没有`getlogin`的情况下获取用户登录名、c# – 如何在没有*具有MethodInfo的情况下使用MSIL *在实例上调用方法?、CSS 介绍、什么是 CSS、为什么我们使用 CSS 以及 CSS 如何描述 HTML 元素的知识。
本文目录一览:- 如何在没有 CSS 的情况下更改列标题的字体(没有css样式)
- angular – 如何在没有* ngIf的情况下渲染ng-container或ng-template?
- C / Linux:如何在没有`getlogin`的情况下获取用户登录名
- c# – 如何在没有*具有MethodInfo的情况下使用MSIL *在实例上调用方法?
- CSS 介绍、什么是 CSS、为什么我们使用 CSS 以及 CSS 如何描述 HTML 元素
如何在没有 CSS 的情况下更改列标题的字体(没有css样式)
如何解决如何在没有 CSS 的情况下更改列标题的字体
我希望能够在不使用 CSS 的情况下更改 JavaFX 的 TableView 的列标题的字体。我在网上做了很多搜索,所有的解决方案似乎都只使用 CSS。我想更改的字体是自定义字体,在 CSS 中为 JavaFX 加载自定义字体时出现了一个错误,我在搜索了数十个链接后似乎无法修复该错误。
我尝试的 CSS 方法是
@font-face {
font-family: ''8bitoperator'';
src: url(''assets/8bitoperator.ttf'');
}
.table-view .column-header.foo .label {
-fx-text-fill: white;
-fx-font-size: 0.13%; /* arbitrary value */
-fx-font-family: ''8bitoperator'';
}
遇到 loadStylesheetUnPrivileged
错误。我程序中的所有其他样式都是通过 Javafx 而不是 CSS,所以我想保持这一点。
感谢任何帮助。
解决方法
我不确定您当前的样式表问题。但是,如果您正在寻找一种以编程方式更新列标题字体的方法,下面是一种方法。话虽如此,还有许多其他方法。
总体思路是:你想要的节点,不能通过任何通用 API 访问。所以我们在表格视图完全渲染时查找节点。节点的“needsLayout”属性在完全呈现时将变为 false。因此,如果您依赖该属性和一个不能多次运行的额外属性,您可以使用“lookupAll”方法来获取您的需求。
import javafx.animation.AnimationTimer;
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.Priority;
import javafx.scene.layout.Region;
import javafx.scene.layout.VBox;
import javafx.scene.text.Font;
import javafx.stage.Stage;
import java.util.concurrent.atomic.AtomicBoolean;
public class ColumnHeaderCustomFontDemo extends Application {
boolean fontsLoaded = false;
int i = 1;
@Override
public void start(Stage primaryStage) throws Exception {
TableView<Person> tableView = new TableView<>();
TableColumn<Person,String> fnCol = new TableColumn<>("First Name");
fnCol.setPrefWidth(120);
fnCol.setId("firstColumn");
TableColumn<Person,String> lnCol = new TableColumn<>("Last Name");
lnCol.setId("lastColumn");
lnCol.setVisible(false);
TableColumn<Person,String> cityCol = new TableColumn<>("City");
cityCol.setId("cityColumn");
tableView.getColumns().addAll(fnCol,lnCol,cityCol);
tableView.needsLayoutProperty().addListener((obs,old,needsLayout) -> {
if (!needsLayout) {
AtomicBoolean updateLayout = new AtomicBoolean();
tableView.lookupAll(".column-header").stream().map(node -> (Region) node).forEach(column -> {
if (column.getProperties().get("fontLoaded") == null) {
switch (column.getId()) {
case "firstColumn":
updateFont(column,"Calibri",20);
updateLayout.set(true);
break;
case "lastColumn":
updateFont(column,"Verdana",10);
updateLayout.set(true);
break;
case "newColumn":
updateFont(column,25);
updateLayout.set(true);
break;
}
column.getProperties().put("fontLoaded",true);
}
});
if (updateLayout.get()) {
// A timer to execute only once in the next pulse.
new AnimationTimer(){
int count = 0;
@Override
public void handle(long now) {
if(count>1){
tableView.requestLayout();
stop();
}
count++;
}
}.start();
}
}
});
CheckBox showLastColumn = new CheckBox("Show LastName column");
showLastColumn.selectedProperty().addListener((obs,val) -> lnCol.setVisible(val));
Button addColumn = new Button("Add Column");
addColumn.setOnAction(e -> {
TableColumn<Person,String> newCol = new TableColumn<>("Column " + i++);
newCol.setId("newColumn");
tableView.getColumns().add(newCol);
});
VBox root = new VBox();
root.setSpacing(10);
root.setPadding(new Insets(10));
root.getChildren().addAll(showLastColumn,addColumn,tableView);
VBox.setVgrow(tableView,Priority.ALWAYS);
Scene sc = new Scene(root,500,500);
primaryStage.setScene(sc);
primaryStage.setTitle("ColumnHeader Custom Font");
primaryStage.show();
}
private void updateFont(Region column,String fontName,int fontSize) {
column.lookupAll(".label").stream().map(node -> (Label) node).forEach(label -> label.setFont(new Font(fontName,fontSize)));
}
class Person {
// TableView item
}
}
angular – 如何在没有* ngIf的情况下渲染ng-container或ng-template?
<ng-container *ngIf="myInputBool"> <ion-card tappable> <ng-container render="myContent"></ng-container> </ion-card> </ng-container> <ng-container *ngIf="!myInputBool"> <ion-card tappable> <ng-container render="myContent"></ng-container> </ion-card> </ng-container> <ng-container #myContent> This is my content </ng-container>
当然它不起作用,因为没有“渲染”选项.到目前为止,我的解决方法是在ng-container中添加一个不存在的变量
<ng-container *ngIf="thisVariableDoesNotExist else myContent"> </ng-container>
但它感觉很糟糕和黑客.有更好的方法吗?
解决方法
<ng-container *ngTemplateOutlet="myContent"></ng-container>
也可以看看
> https://angular.io/api/common/NgTemplateOutlet#how-to-use
C / Linux:如何在没有`getlogin`的情况下获取用户登录名
我面临的问题在联机帮助页中说明:
Note that glibc does not follow the POSIX specification and uses stdin
instead of /dev/tty. A bug. (Other recent systems,like SunOS 5.8
and HP-UX 11.11 and FreeBSD 4.8 all return the login name also when
stdin is redirected).
有没有其他方法可以检索用户名?
解决方法
getenv(“USER”)可能会给你相同的结果,但如果你想要真正的安全性,就不能依赖它.
从技术上讲,当stdin是您的控制终端时,所有这些可能与getlogin获得的结果不同.如果你真的需要和getlogin一样的答案,你可以暂时让你的fd 0指向你的控制终端,然后调用getlogin,然后恢复你的fd 0:
int saved_fd0; if(0>(saved_fd0 = dup(0)) /*handle error*/; close(0); /*open always gets the lowest possible fd number == Now 0*/ /*"/dev/tty" is always your current processes's controlling terminal*/ if(0>open("/dev/tty",O_RDONLY)) /*handle error*/; /* getlogin() .. */ /*restore saved_fd0*/ if(0>dup2(saved_fd0,0)) /*handle error*/;
c# – 如何在没有*具有MethodInfo的情况下使用MSIL *在实例上调用方法?
Person1 { get; set; } Person2 { get; set; } Person3 { get; set; }
我不想在类的实例上获取MethodInfo对象,而是执行类似这样的操作:
... il.Emit(OpCodes.Callvirt,[instance]["set_Person" + index]);
上面的代码行是说明性的,而不是我认为它应该是什么.
有谁知道我怎么能这样做?
解决方法
这似乎不是一个复杂的选择:
il.Emit(OpCodes.Callvirt,type.getmethod("set_Person" + index));
CSS 介绍、什么是 CSS、为什么我们使用 CSS 以及 CSS 如何描述 HTML 元素
CSS是什么?
CSS 代表层叠样式表
CSS 描述了 HTML 元素如何在屏幕、纸张或其他媒体上显示
CSS 节省了大量工作。它可以同时控制多个网页的布局
外部样式表存储在 CSS 文件中
为什么我们使用CSS?
CSS 用于定义网页的样式,包括设计、布局以及针对不同设备和屏幕尺寸的显示变化。
示例
身体{ 背景颜色:浅蓝色; } h1 { 白颜色; 文本对齐:居中; } p { 字体系列:verdana; 字体大小:20px; }
CSS解决了一个大问题
HTML 从来没有打算包含用于格式化网页的标签!
HTML 的创建是为了描述网页的内容,例如:
这是一个标题
这是一个段落。
CSS 节省了大量工作!
样式定义通常保存在外部.
CSS 语法
CSS 规则由选择器和声明块组成。
h1 {颜色:蓝色;字体大小:12px;}
选择器指向您想要设置样式的 HTML 元素。
声明块包含一个或多个以分号分隔的声明。
每个声明都包含一个 CSS 属性名称和一个值,以冒号分隔。
示例
p { 红色; 文本对齐:居中; }
示例解释
p 是 CSS 中的选择器(它指向您想要设置样式的 HTML 元素:
)。
颜色是一个属性,红色是属性值
text-align 是一个属性,center 是属性值
CSS 选择器
CSS 选择器用于“查找”(或选择)您想要设置样式的 HTML 元素。
我们可以将 CSS 选择器分为五类:
简单选择器(根据名称、id、类选择元素)
组合选择器(根据元素之间的特定关系选择元素)
伪元素选择器(选择元素的一部分并为其设置样式)
CSS 元素选择器
元素选择器根据元素名称选择 HTML 元素。
示例
p { 文本对齐:居中; 红色; }
以上就是CSS 介绍、什么是 CSS、为什么我们使用 CSS 以及 CSS 如何描述 HTML 元素的详细内容,更多请关注php中文网其它相关文章!
今天关于如何在没有 CSS 的情况下更改列标题的字体和没有css样式的介绍到此结束,谢谢您的阅读,有关angular – 如何在没有* ngIf的情况下渲染ng-container或ng-template?、C / Linux:如何在没有`getlogin`的情况下获取用户登录名、c# – 如何在没有*具有MethodInfo的情况下使用MSIL *在实例上调用方法?、CSS 介绍、什么是 CSS、为什么我们使用 CSS 以及 CSS 如何描述 HTML 元素等更多相关知识的信息可以在本站进行查询。
本文标签: