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

📄 swingdemo.java

📁 部分swing组件的演示
💻 JAVA
字号:
package javax.swing;

import javax.swing.*;
import javax.swing.event.*;
import javax.swing.border.*;
import java.awt.*;
import java.awt.event.*;

import java.util.Hashtable;
import java.util.Dictionary;
import java.util.Enumeration;
import java.util.Locale;
import java.util.Vector;
import java.util.EventListener;
import java.util.Set;
import java.util.TreeSet;
///////////////////////////////////////////////////////
public class SwingDemo
{
	
	public static void main(String args[])
	{
		try
		{
			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
		}catch (Exception e) {}
		SwingFrame sf = new SwingFrame();
		//SwingGraphics.createSwingGraphics(new Graphics(), 3);
	}
}
//////////////////////////////////////////////////////
class SwingFrame extends JFrame
{
	public SwingFrame()
	{
		
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setTitle("SwingDemo");	
		setSize(300, 200);
		
		getContentPane().setLayout(new BorderLayout());
		getContentPane().add(new SwingPanel(), BorderLayout.CENTER);
		getContentPane().add(new JPanel(), BorderLayout.NORTH);
		getContentPane().add(new JPanel(), BorderLayout.SOUTH);
		getContentPane().add(new JPanel(), BorderLayout.WEST);
		getContentPane().add(new JPanel(), BorderLayout.EAST);
		show();
	}
}
/////////////////////////////////////////////////////////////
class SwingPanel extends JPanel
{
	//ButtonGroup将RadioButton分组,但并不具有外观,所以不用也不能
	//在JPanel上添加它
	private ButtonGroup bg = new ButtonGroup();
	public SwingPanel()
	{
		//this.setBorder(BorderFactory.createTitledBorder(
		//			BorderFactory.createEtchedBorder(), "good"));

		this.setBorder(new MyLineBorder(new Color(208, 208, 191), 1, true));
		makeButton("sb2");
		makeTextField(1, "shenme ", 20);
		makeCheckBox(1, "haha", true);
		makeRadioButton(1, "陈浩",true);
		makeRadioButton(2, "YY", true);
		makeComboBox(1, null);
		//add(bg);
	}
	public void makeButton(String s)
	{
		JButton jb = new JButton(s);
		add(jb);
		jb.addActionListener(new ButtonAction(s)); 	
	}
	public void makeTextField(int ID, String text, int columns)
	{
		JTextField jt = new JTextField(text, columns);
		jt.getDocument().addDocumentListener(new TextFieldListener(ID));
		add(jt);
	}	
	public void makeCheckBox(int ID, String text, boolean b)
	{
		JCheckBox jc = new JCheckBox(text, b);
		jc.addActionListener(new CheckListener(ID));
		jc.setFocusable(false);
		add(jc);	
	}
	public void makeRadioButton(int ID, String text, boolean b)
	{
		JRadioButton jr = new JRadioButton(text, b);
		jr.addActionListener(new RadioListener(ID));
		jr.setFocusable(false);
		bg.add(jr);//把RadioButton添加到组中。	
		add(jr);//把jr添加到面板
	}
	public void makeComboBox(int ID, Object [] text)
	{
		String s[] = new String [20];
		for(int i = 0; i < s.length; i++)
			s[i] = new String("text " + i);
		JComboBox jc = new JComboBox(s);	
		jc.addActionListener(new ComboListener(ID));
		add(jc);
	}
	public void ptr(String s)
	{
		System.out.println ("In the Panel method " + s);	
	}
	/**
     * 下的内部类实现监听器接口
     */
	//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
	private class ButtonAction implements ActionListener
	{
		private String ButtonName = null;
		public ButtonAction(String s)
		{
			ButtonName = s;
		}
		public void actionPerformed(ActionEvent e)
		{
			//内部类能够直接调用外部类的方法
			ptr("dd");
		}
	}
	//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
	private class TextFieldListener implements DocumentListener
	{
		private int ID;
		public 	TextFieldListener(int ID)
		{
			this.ID = ID;	
		}
		public void insertUpdate(DocumentEvent e)
		{
			System.out.println ("insertUpdate ID = " + ID);	
		}
		public void removeUpdate(DocumentEvent e)
		{
			System.out.println ("removeUpdate ID = " + ID);	
		}
		public void changedUpdate(DocumentEvent e) 
		{
			System.out.println ("changedUpdate ID = " + ID);	
		}
	}
	//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
	private class CheckListener implements ActionListener
	{
		private int ID;
		public CheckListener(int ID)
		{
			this.ID = ID;
		}
		public void actionPerformed(ActionEvent e)
		{
			System.out.println("ID = " + ID);
			System.out.println (((JCheckBox)e.getSource()).isSelected());	
		}
	}	
	private class RadioListener implements ActionListener
	{
		private int ID;
		public RadioListener(int ID)
		{
			this.ID = ID;
		}	
		public void actionPerformed(ActionEvent e)
		{
			System.out.println ("RadioButton " + ID + " Click");
			System.out.println (((JRadioButton)e.getSource()).isSelected());	
		}
	}
	private class ComboListener implements ActionListener
	{
		private int ID;
		public ComboListener(int ID)
		{
			this.ID = ID;
		}	
		public void actionPerformed(ActionEvent e)
		{
			System.out.println ("JComboBox " + ID + " Click");
			System.out.println (((String)((JComboBox)e.getSource()).getSelectedItem()).toString());	
		}
	}
}
/////////////////////////////////////////////////////////////////
class SwingButton extends JButton
{
	public SwingButton()
	{
		setText("Jbutton");	
	}	
}
/////////////////////////////////////////////////////////////////
class SwingTextField extends JTextField
{
	public SwingTextField()
	{
		setText("JTextField");	
	}	
}

//自己的lineBorder类,重画了圆角。
class MyLineBorder extends LineBorder
{
	public MyLineBorder(Color color, int thickness, boolean roundedCorners)
	{
		super(color, thickness, roundedCorners)	;
	}
	public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) {
        Color oldColor = g.getColor();
        int i;

	/// PENDING(klobad) How/should do we support Roundtangles?
        g.setColor(lineColor);
        for(i = 0; i < thickness; i++)  {
	    if(!roundedCorners)
                g.drawRect(x+i, y+i, width-i-i-1, height-i-i-1);
	    else
                g.drawRoundRect(x+i, y+i, width-i-i-1, height-i-i-1, 7, 7);
        }
        System.out.println("in");
        g.setColor(oldColor);
    }
    
}

⌨️ 快捷键说明

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