圖形化使用者介面(一)GUI元素之複選框

來源:互聯網
上載者:User

 
這個程式顯示兩個複選框和一個標籤。通過改變複選框的狀態,進而改變標籤上文本的格式,是按粗體、斜體、還是粗斜體的方式顯示字型。

 

StyleOptions程式中的GUI設計包括在StyleOptionsPanel類中。複選框由JCheckBox類來表示。當複選框從一種狀態變為另一種狀態時,產生ItemListener事件,ItemListener介面包含單一的方法itemStateChanged。

 

程式中還用到了Font類。一個Font對象有字型名,字型樣式和字型大小組成。

 

當改變一個複選框的狀態時,監聽器的itemStateChanged方法輪流判定每個複選框,這個方法返回一個布爾值。

 

實際效果

StyleOptions.java

 

import javax.swing.JFrame;

public class StyleOptions {
 public static void main(String[] args) {
  JFrame frame = new JFrame("Style Options");
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  
  frame.getContentPane().add(new StyleOptionsPanel());
  
  frame.pack();
  frame.setVisible(true);
 }
}

 

 

StyleOptionsPanel.java

 

package JCheckBox;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class StyleOptionsPanel extends JPanel{
 private JLabel saying;
 private JCheckBox bold, italic;
 
 public StyleOptionsPanel(){
  saying = new JLabel("Say it with style");
  saying.setFont(new Font("Helvetica", Font.PLAIN, 36));
  
  bold = new JCheckBox("Bold");
  bold.setBackground(Color.green);
  italic = new JCheckBox("Italic");
  italic.setBackground(Color.green);
  
  StyleListener listener = new StyleListener();
  bold.addItemListener(listener);
  italic.addItemListener(listener);
  
  add(saying);
  add(bold);
  add(italic);
  
  setBackground(Color.green);
  setPreferredSize(new Dimension(300, 100));
 }
 
 public class StyleListener implements ItemListener {
  public void itemStateChanged(ItemEvent arg0) {
   int style = Font.PLAIN;
   
   if(bold.isSelected())
    style = Font.BOLD;
   if(italic.isSelected())
    style = Font.ITALIC;

   saying.setFont(new Font("Helvetica",style, 36));
  }
 }
}

 

這裡有個缺陷,就是不能同時顯示粗斜體,如有人知道,麻煩告訴一下,感激不盡。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.