РЕДАКТИРОВАНИЕ: ответ ниже был записан в начале 2009, когда Java 7 был очень все еще в движении.
, В то время как Java все еще не обеспечивает гарантии вокруг синхронизации завершения, он сделал , получают функцию как C# using
оператор: оператор .
попытки с ресурсами
нет, Java не изменился вообще в этом отношении. Все еще необходимо использовать попытку/наконец.
было обсуждение добавления эквивалента оператора "использования" C# (который является синтаксическим сахаром по попытке/наконец) к Java, но я не думаю, что это будет частью Java 7 больше. (Большинство улучшений языка, кажется, было отброшено.)
стоит понять, что существуют причины, почему детерминированное разрушение не было реализовано в Java и.NET в форме считаемого на ссылку сборщика "мусора", между прочим - который a) влияет на производительность и b) перестало работать с циклическими ссылками. Brian Harry написал подробное электронное письмо об этом - это о.NET, и это довольно старо, но это определенно стоит близкого чтения.
Это должно решить проблему со шрифтом:
Label1.Font = New Drawing.Font("Times New Roman", _
16, _
FontStyle.Bold or FontStyle.Italic)
Документация MSDN по свойству Font здесь
Возможная реализация функции, которая создает этот шрифт, может выглядеть следующим образом:
Public Function CreateFont(ByVal fontName As String, _
ByVal fontSize As Integer, _
ByVal isBold As Boolean, _
ByVal isItalic As Boolean, _
ByVal isStrikeout As Boolean) As Drawing.Font
Dim styles As FontStyle = FontStyle.Regular
If (isBold) Then
styles = styles Or FontStyle.Bold
End If
If (isItalic) Then
styles = styles Or FontStyle.Italic
End If
If (isStrikeout) Then
styles = styles Or FontStyle.Strikeout
End If
Dim newFont As New Drawing.Font(fontName, fontSize, styles)
Return newFont
End Function
Шрифты неизменяемы, это означает, что после создания они не могут быть обновлены. Поэтому все свойства только для чтения, которые вы заметили.