⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 drawstringdemo.java

📁 Jfreechart 源码例子 是和jfreechart development Guide文档相配套的
💻 JAVA
字号:
package demo;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.FontChooserPanel;
import org.jfree.ui.RefineryUtilities;
import org.jfree.ui.Spinner;
import org.jfree.ui.TextAnchor;

public class DrawStringDemo extends ApplicationFrame
  implements ActionListener, PropertyChangeListener
{
  private JComboBox combo1;
  private JComboBox combo2;
  private JComboBox combo3;
  private Spinner spinner;
  private DrawStringPanel drawStringPanel1;
  private DrawStringPanel drawStringPanel2;

  public DrawStringDemo(String paramString)
  {
    super(paramString);
    setContentPane(createContentPane());
  }

  public void actionPerformed(ActionEvent paramActionEvent)
  {
    if (paramActionEvent.getActionCommand().equals("fontButton.clicked"))
      displayFontDialog();
    if (paramActionEvent.getActionCommand().equals("combo1.changed"))
      handleCombo1Change();
    if (paramActionEvent.getActionCommand().equals("combo2.changed"))
      handleCombo2Change();
    if (paramActionEvent.getActionCommand().equals("combo3.changed"))
      handleCombo3Change();
  }

  public void propertyChange(PropertyChangeEvent paramPropertyChangeEvent)
  {
    int i = this.spinner.getValue();
    double d = 6.2831853071795862D * i / 360.0D;
    this.drawStringPanel2.setAngle(d);
    this.drawStringPanel2.invalidate();
    this.drawStringPanel2.repaint();
  }

  private void handleCombo1Change()
  {
    String str = this.combo1.getSelectedItem().toString();
    this.drawStringPanel1.setAnchor(convertStringToAnchor(str));
    this.drawStringPanel1.invalidate();
    this.drawStringPanel1.repaint();
  }

  private void handleCombo2Change()
  {
    String str = this.combo2.getSelectedItem().toString();
    this.drawStringPanel2.setAnchor(convertStringToAnchor(str));
    this.drawStringPanel2.invalidate();
    this.drawStringPanel2.repaint();
  }

  private void handleCombo3Change()
  {
    String str = this.combo3.getSelectedItem().toString();
    this.drawStringPanel2.setRotationAnchor(convertStringToAnchor(str));
    this.drawStringPanel2.invalidate();
    this.drawStringPanel2.repaint();
  }

  private JPanel createContentPane()
  {
    JPanel localJPanel = new JPanel(new BorderLayout());
    JTabbedPane localJTabbedPane = new JTabbedPane();
    localJTabbedPane.add("Alignment", createTab1Content());
    localJTabbedPane.add("Rotation", createTab2Content());
    localJPanel.add(localJTabbedPane);
    return localJPanel;
  }

  private JPanel createTab1Content()
  {
    JPanel localJPanel1 = new JPanel(new BorderLayout());
    this.combo1 = new JComboBox();
    this.combo1.setActionCommand("combo1.changed");
    populateTextAnchorCombo(this.combo1);
    this.combo1.addActionListener(this);
    JPanel localJPanel2 = new JPanel();
    localJPanel2.add(this.combo1);
    JButton localJButton = new JButton("Select Font...");
    localJButton.setActionCommand("fontButton.clicked");
    localJButton.addActionListener(this);
    localJPanel2.add(localJButton);
    localJPanel1.add(localJPanel2, "North");
    this.drawStringPanel1 = new DrawStringPanel("0123456789", false);
    localJPanel1.add(this.drawStringPanel1);
    return localJPanel1;
  }

  private JPanel createTab2Content()
  {
    JPanel localJPanel1 = new JPanel(new BorderLayout());
    JPanel localJPanel2 = new JPanel();
    localJPanel2.add(new JLabel("Text anchor: "));
    this.combo2 = new JComboBox();
    populateTextAnchorCombo(this.combo2);
    this.combo2.setActionCommand("combo2.changed");
    this.combo2.addActionListener(this);
    localJPanel2.add(this.combo2);
    localJPanel2.add(new JLabel("Rotation anchor: "));
    this.combo3 = new JComboBox();
    populateTextAnchorCombo(this.combo3);
    this.combo3.setActionCommand("combo3.changed");
    this.combo3.addActionListener(this);
    localJPanel2.add(this.combo3);
    this.spinner = new Spinner(0);
    this.spinner.addPropertyChangeListener(this);
    localJPanel2.add(this.spinner);
    localJPanel1.add(localJPanel2, "North");
    this.drawStringPanel2 = new DrawStringPanel("Rotated Text", true);
    localJPanel1.add(this.drawStringPanel2);
    return localJPanel1;
  }

  private void displayFontDialog()
  {
    FontChooserPanel localFontChooserPanel = new FontChooserPanel(this.drawStringPanel1.getFont());
    int i = JOptionPane.showConfirmDialog(this, localFontChooserPanel, "Font Selection", 2, -1);
    if (i == 0)
    {
      this.drawStringPanel1.setFont(localFontChooserPanel.getSelectedFont());
      this.drawStringPanel2.setFont(localFontChooserPanel.getSelectedFont());
    }
  }

  private void populateTextAnchorCombo(JComboBox paramJComboBox)
  {
    paramJComboBox.addItem("TextAnchor.TOP_LEFT");
    paramJComboBox.addItem("TextAnchor.TOP_CENTER");
    paramJComboBox.addItem("TextAnchor.TOP_RIGHT");
    paramJComboBox.addItem("TextAnchor.HALF_ASCENT_LEFT");
    paramJComboBox.addItem("TextAnchor.HALF_ASCENT_CENTER");
    paramJComboBox.addItem("TextAnchor.HALF_ASCENT_RIGHT");
    paramJComboBox.addItem("TextAnchor.CENTER_LEFT");
    paramJComboBox.addItem("TextAnchor.CENTER");
    paramJComboBox.addItem("TextAnchor.CENTER_RIGHT");
    paramJComboBox.addItem("TextAnchor.BASELINE_LEFT");
    paramJComboBox.addItem("TextAnchor.BASELINE_CENTER");
    paramJComboBox.addItem("TextAnchor.BASELINE_RIGHT");
    paramJComboBox.addItem("TextAnchor.BOTTOM_LEFT");
    paramJComboBox.addItem("TextAnchor.BOTTOM_CENTER");
    paramJComboBox.addItem("TextAnchor.BOTTOM_RIGHT");
  }

  private TextAnchor convertStringToAnchor(String paramString)
  {
    if (paramString.equals("TextAnchor.TOP_LEFT"))
      return TextAnchor.TOP_LEFT;
    if (paramString.equals("TextAnchor.TOP_CENTER"))
      return TextAnchor.TOP_CENTER;
    if (paramString.equals("TextAnchor.TOP_RIGHT"))
      return TextAnchor.TOP_RIGHT;
    if (paramString.equals("TextAnchor.CENTER_LEFT"))
      return TextAnchor.CENTER_LEFT;
    if (paramString.equals("TextAnchor.CENTER"))
      return TextAnchor.CENTER;
    if (paramString.equals("TextAnchor.CENTER_RIGHT"))
      return TextAnchor.CENTER_RIGHT;
    if (paramString.equals("TextAnchor.HALF_ASCENT_LEFT"))
      return TextAnchor.HALF_ASCENT_LEFT;
    if (paramString.equals("TextAnchor.HALF_ASCENT_CENTER"))
      return TextAnchor.HALF_ASCENT_CENTER;
    if (paramString.equals("TextAnchor.HALF_ASCENT_RIGHT"))
      return TextAnchor.HALF_ASCENT_RIGHT;
    if (paramString.equals("TextAnchor.BASELINE_LEFT"))
      return TextAnchor.BASELINE_LEFT;
    if (paramString.equals("TextAnchor.BASELINE_CENTER"))
      return TextAnchor.BASELINE_CENTER;
    if (paramString.equals("TextAnchor.BASELINE_RIGHT"))
      return TextAnchor.BASELINE_RIGHT;
    if (paramString.equals("TextAnchor.BOTTOM_LEFT"))
      return TextAnchor.BOTTOM_LEFT;
    if (paramString.equals("TextAnchor.BOTTOM_CENTER"))
      return TextAnchor.BOTTOM_CENTER;
    if (paramString.equals("TextAnchor.BOTTOM_RIGHT"))
      return TextAnchor.BOTTOM_RIGHT;
    return null;
  }

  public static void main(String[] paramArrayOfString)
  {
    DrawStringDemo localDrawStringDemo = new DrawStringDemo("DrawString Demo");
    localDrawStringDemo.pack();
    RefineryUtilities.centerFrameOnScreen(localDrawStringDemo);
    localDrawStringDemo.setVisible(true);
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -