JRadioButton small = new JRadioButton("small"); JRadioButton middle = new JRadioButton("middle"); JRadioButton large = new JRadioButton("large"); ButtonGroup group = new ButtonGroup(); group.add(small); group.add(middle); group.add(large); small.setSelected(true);
}
public void add(Component c, GridBagConstraints constraint, int x, int y, int w, int h) { constraint.gridx = x; constraint.gridy = y; constraint.gridwidth = w; constraint.gridheight = h; cont.add(c, constraint); } @Override public void actionPerformed(ActionEvent e) { String name = (String)fontNames.getSelectedItem(); int style = (bold.isSelected() ? Font.BOLD : 0) + (italic.isSelected() ? Font.ITALIC : 0); String strSize = (String)fontSize.getSelectedItem(); int size = Integer.parseInt(strSize); Font font = new Font(name, style, size); showArea.setFont(font); } public static void main(String[] args) { Demo frame = new Demo(); frame.setVisible(true); } }
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.util.Random;import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JWindow;public class TestWindow extends JFrame {
private static final long serialVersionUID = 1L;
private Random ran = new Random();
private int count = 30;
private int[] snowX = null;
private int[] snowY = null;
private MyPanel pane;
private Point lastPoint = null;
private JWindow winPop;
private JLabel labNum;
public TestWindow() {
init();
}
private void init() {
this.setAlwaysOnTop(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(1024, 768);
if (snowX == null) {
snowX = new int[count];
snowY = new int[count];
for (int i = 0; i < snowX.length; i++) {
snowX[i] = ran.nextInt(1024);
}
for (int i = 0; i < snowY.length; i++) {
snowY[i] = ran.nextInt(768);
}
}
pane = new MyPanel();
winPop = new JWindow(this);
winPop.setSize(50, 20);
winPop.setVisible(false);
labNum = new JLabel();
labNum.setBorder(BorderFactory.createLineBorder(Color.BLACK));
winPop.add(labNum);
this.setContentPane(pane);
}
public static void main(String[] args) {
TestWindow frame = new TestWindow();
frame.setVisible(true);
}
class MyPanel extends JPanel {
private static final long serialVersionUID = 1L;
private int index = -1;
public MyPanel() {
super();
initialize();
}
private void initialize() {
addMouseMotionListener(new MouseMotionAdapter(){
public void mouseMoved(MouseEvent e) {
index = -1;
lastPoint = e.getPoint();
for (int i = count-1; i >= 0; i--) {
if (lastPoint.x > snowX[i] &&
lastPoint.x < snowX[i]+108 &&
lastPoint.y > snowY[i] &&
lastPoint.y < snowY[i]+124) {
index = i;
break;
}
}
if (index != -1) {
winPop.setLocation(snowX[index]+50, snowY[index]+50);
labNum.setText(""+index);
winPop.setVisible(true);
} else {
winPop.setVisible(false);
}
}
@Override
public void mouseDragged(MouseEvent e) {
Point point = e.getPoint();
int offsetX = point.x - lastPoint.x;
int offsetY = point.y - lastPoint.y;
if (index != -1) {
snowX[index] += offsetX;
snowY[index] += offsetY;
}
repaint();
lastPoint = point;
}
});
} @Override
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2d = (Graphics2D) g;
for (int i = 0; i < count; i++) {
g2d.setColor(new Color(128,80,i*8));
int x = snowX[i];
int y = snowY[i];
g2d.fillRect(x, y, 108, 124);
}
}
}
}
import java.awt.Component;
import java.awt.Container;
import java.awt.Font;
import java.awt.GraphicsEnvironment;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.ButtonGroup;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;public class Demo extends JFrame implements ActionListener{
private JComboBox fontNames;
private JComboBox fontSize;
private JCheckBox bold;
private JCheckBox italic;
private JTextArea showArea;
private JLabel nameLabel;
private JLabel sizeLabel;
private Container cont;
public Demo() {
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(400, 300);
this.setLocationRelativeTo(null);
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
String[] names = ge.getAvailableFontFamilyNames();
String[] sizes = {"16","20","24","28","32","36"};
fontNames = new JComboBox(names);
fontSize = new JComboBox(sizes);
bold = new JCheckBox("Bold");
italic = new JCheckBox("Italic");
showArea = new JTextArea("dsdfdadasd2");
showArea.setEditable(false);
showArea.setLineWrap(true);
showArea.setWrapStyleWord(true);
nameLabel = new JLabel("Font");
sizeLabel = new JLabel("Size");
fontNames.addActionListener(this);
fontSize.addActionListener(this);
bold.addActionListener(this);
italic.addActionListener(this);
cont = this.getContentPane();
cont.setLayout(new GridBagLayout());
GridBagConstraints constraint = new GridBagConstraints();
constraint.fill = GridBagConstraints.NONE;
constraint.weightx = 0;
constraint.weighty = 0;
add(nameLabel, constraint, 0, 0, 1, 1);
add(sizeLabel, constraint, 0, 1, 1, 1);
constraint.fill = GridBagConstraints.HORIZONTAL;
constraint.weightx = 100;
add(fontNames, constraint, 1, 0, 1, 1);
add(fontSize, constraint, 1, 1, 1, 1);
constraint.fill = GridBagConstraints.NONE;
constraint.anchor = GridBagConstraints.CENTER;
constraint.weightx = 0;
constraint.weighty = 0;
add(bold, constraint, 0, 2, 2, 1);
add(italic, constraint, 0, 3, 2, 1);
constraint.fill = GridBagConstraints.BOTH;
constraint.weightx = 100;
constraint.weighty = 100;
add(new JScrollPane(showArea), constraint, 2, 0, 1, 4);
JRadioButton small = new JRadioButton("small");
JRadioButton middle = new JRadioButton("middle");
JRadioButton large = new JRadioButton("large");
ButtonGroup group = new ButtonGroup();
group.add(small);
group.add(middle);
group.add(large);
small.setSelected(true);
}
public void add(Component c, GridBagConstraints constraint,
int x, int y, int w, int h) {
constraint.gridx = x;
constraint.gridy = y;
constraint.gridwidth = w;
constraint.gridheight = h;
cont.add(c, constraint);
} @Override
public void actionPerformed(ActionEvent e) {
String name = (String)fontNames.getSelectedItem();
int style = (bold.isSelected() ? Font.BOLD : 0) +
(italic.isSelected() ? Font.ITALIC : 0);
String strSize = (String)fontSize.getSelectedItem();
int size = Integer.parseInt(strSize);
Font font = new Font(name, style, size);
showArea.setFont(font);
} public static void main(String[] args) {
Demo frame = new Demo();
frame.setVisible(true);
}
}