JTabbedPaneでタブタイトルのスタイルを書式設定する方法がありません。Groovy SwingBuilder:JTabbedPaneのタブタイトルのスタイルを制御する
タブペインの背景色を変更することはできますが(下記参照)、タブのタイトルのスタイルを変更する方法はありません。私はそれらを太字または赤色にするか、タブの幅を定義することができます。たとえば、最初のパネルでラベルのスタイルをフォーマットすることができます。
ここでは、主にtim_yates(Groovy SwingBuilder : using a scrollpanel to show a list of panels)に触発されたコード、です:
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のドキュメントは、それを行う方法を説明していない、と私はスタイルのタブを使用して、任意の例を見つけることができませんでした。
ありがとうございました。
ありがとう、
Michel。
PSは:Antのは興味深い記事へのリンク
Groovy SwingBuilder : changing size and/or font of tabs (in jTabbedpane)
を提供しますが、(最初はあまりにも漠然とした)私の質問のために直接役立ちません。
私はあなたが( javadoc for which can be found here)jtabbedpane.setTabComponentAt
を呼び出す必要があると考えてい
tyvm、tim!ちょうど私が探していたもの。 –
その間、私はこのソリューションを試していました:フォントスタイルを設定するために正しく動作するtabbedPane(){} .setFont(font)ですが、幅や色をカスタマイズするためにフォントを拡張できませんでした –
あなたのソリューションはより柔軟です:def tabComponents = [ (テキスト: 'Tab 1'、font:font.deriveFont(Font.ITALIC)、foreground:java.awt.Color.RED、preferredSize:[104、24])、 swing.labelあなたのPSに関連する –