JTabbedPane でタブ タイトルのスタイルをフォーマットする方法が見つかりません (何かありますか?)。
タブ ペインの背景色を変更することはできますが (以下を参照)、タブのタイトルのスタイルを設定する方法が見つかりません。たとえば、最初のパネルでラベルのスタイルをフォーマットできるように、それらを太字または赤にしたり、タブの幅を定義したりしたいと考えています。
主に tim_yates ( Groovy SwingBuilder : scrollpanel を使用してパネルのリストを表示する)に触発されたコードを次に示します。
import groovy.swing.SwingBuilder
import javax.swing.WindowConstants as WC
import javax.swing.JOptionPane
import javax.swing.JTabbedPane
import javax.swing.JScrollPane
import javax.swing.BoxLayout as BXL
import java.awt.Font
Font font = new Font("Serif", Font.BOLD, 13)
int numPanels = 20
swing = new SwingBuilder()
frame = swing.frame(title:'test', pack:true, visible:true, defaultCloseOperation:WC.DISPOSE_ON_CLOSE) {
tabbedPane(id: 'tabs', tabLayoutPolicy:JTabbedPane.SCROLL_TAB_LAYOUT) {
panel(name: 'Tab 1', background:java.awt.Color.WHITE ) {
boxLayout(axis: BXL.Y_AXIS)
panel(alignmentX: 0f, background:java.awt.Color.WHITE){
label ( 'Label 1', preferredSize: [104, 24]).setFont(font)
label ( 'Label 2', preferredSize: [104, 24]).setFont(font)
label ( 'Label 3', preferredSize: [104, 24]).setFont(font)
}
scrollPane( verticalScrollBarPolicy:JScrollPane.VERTICAL_SCROLLBAR_ALWAYS) {
vbox (){
(1..numPanels).each { num ->
def panelID = "panel$num"
def pane = panel( alignmentX:0f, id:panelID, background:java.awt.Color.GREEN ) {
label('description')
textField( id: "description$num", text:panelID, columns: 70 )
button( id: "buttonpanel$num", text:panelID, actionPerformed:{
swing."$panelID".background = java.awt.Color.RED
} )
}
}
}
}
}
panel(name: 'Tab 2', background:java.awt.Color.WHITE) {
textField(text: 'Some text', columns: 15)
scrollPane() {
textArea(text: 'Some text', columns: 15, rows: 4)
}
}
}
boxLayout(axis: BXL.Y_AXIS)
panel(id:'secondPanel', background:java.awt.Color.WHITE){
button('Quit', actionPerformed:{
dispose()
})
}
}
frame.size = [ frame.width, 600 ]
Groovy で実装するのが (私には) 非常に難しいと思われるこれらのリンクを見つけました。
また、Java ドキュメントにはその方法が説明されておらず、スタイル付きタブを使用した例も見つかりませんでした。
ご協力いただきありがとうございます。
よろしく、
ミシェル。
PS : Ant からリンクが提供されました
Groovy SwingBuilder : タブのサイズやフォントの変更 (jTabbedpane 内)
興味深い記事ですが、私の質問には直接役立ちません(最初は漠然としていました)。