java-swing
java的swing
import javax.swing.*; import javax.swing.plaf.DimensionUIResource; import java.awt.*; import java.awt.event.*; public class GUI1 { JFrame f=new JFrame("主窗体"); //主窗体用Jframe JMenuBar jMenuBar=new JMenuBar(); JMenu filemu=new JMenu("文件"); JMenu edit=new JMenu("编辑"); JMenuItem copy=new JMenuItem("复制"); JMenuItem paste=new JMenuItem("粘贴"); JTextArea ta=new JTextArea(8,20); //八行20列文本框 JComboBox colorselect=new JComboBox(); //下拉选择框 /*---------男女单一勾选框组---------------------*/ ButtonGroup bg=new ButtonGroup(); //按钮组 JRadioButton male=new JRadioButton("男",false); //勾选框 JRadioButton female=new JRadioButton("女",true); //勾选框 /*--------------------------------------------*/ JCheckBox ismarry=new JCheckBox("是否已婚",true); //默认是选中的 JTextField tf=new JTextField(40); //四十列的多行文本框 JButton ok=new JButton("确定",new ImageIcon("sheep.jpg")); //button可以加图片图标 /*------------改风格右击菜单组-----------*/ JPopupMenu jPopupMenu=new JPopupMenu(); //用于设置风格的右键弹出框 ButtonGroup popupg=new ButtonGroup(); JRadioButtonMenuItem window_sty=new JRadioButtonMenuItem("win风格",true); JRadioButtonMenuItem metal_sty=new JRadioButtonMenuItem("金属风格"); JRadioButtonMenuItem nimbus_sty=new JRadioButtonMenuItem("nim风格"); /*-------------------------------------*/ private void changeFlavor(String command) throws Exception{ switch (command) { case "win风格": UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); break; case "金属风格": UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel"); break; case "nim风格": UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel"); break; } SwingUtilities.updateComponentTreeUI(f.getContentPane()); //刷新组件的外观 SwingUtilities.updateComponentTreeUI(jMenuBar); //刷新菜单条 SwingUtilities.updateComponentTreeUI(jPopupMenu); //书信右击菜单 //f.getContentPane()所有容器的组件 } public void init(){ /*装右键菜单*/ popupg.add(window_sty); popupg.add(metal_sty); popupg.add(nimbus_sty); jPopupMenu.add(window_sty); jPopupMenu.add(metal_sty); jPopupMenu.add(nimbus_sty); /*修改风格*/ /*事件监听器*/ ActionListener listener=new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String actioncommand=e.getActionCommand(); //获取当前单击的项的名字 try { changeFlavor(actioncommand); }catch (Exception exp){} } }; metal_sty.addActionListener(listener); nimbus_sty.addActionListener(listener); window_sty.addActionListener(listener); /*装菜单条*/ filemu.add(edit); edit.add(paste); filemu.add(copy); jMenuBar.add(filemu); f.setJMenuBar(jMenuBar); /*水平的box1放单行文本框和ok按钮*/ Box box1=Box.createHorizontalBox(); box1.add(tf); ok.setPreferredSize(new Dimension(100,50)); //设置按钮的大小 box1.add(ok); f.add(box1,BorderLayout.SOUTH); //加到南部 /*垂直的box2l装多行文本框和box3*/ Box box2=Box.createVerticalBox(); Box box3=Box.createHorizontalBox(); colorselect.addItem("红色"); colorselect.addItem("绿色"); bg.add(male);bg.add(female); //男人女人两个框只能单选 box3.add(male);box3.add(female);box3.add(ismarry);box3.add(colorselect); //水平box3装的内容 box2.add(ta); box2.add(box3); Box box4=Box.createHorizontalBox(); box4.add(box2); ta.setComponentPopupMenu(jPopupMenu); //在box4上设置右击菜单 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //直接这样写就可以弄好关闭菜单 f.add(box4,BorderLayout.CENTER); f.pack(); f.setVisible(true); } public static void main(String[] args) throws Exception { GUI1 gui1=new GUI1(); gui1.init(); } }

import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import javax.imageio.ImageIO; import javax.swing.*; class Zqhpanel extends JPanel{ Image backimg; ImageIcon icon; public void paint(Graphics g) { try { backimg = ImageIO.read(new File("D:\\study tool\\java_proj\\back.jpg")); super.paint(g); g.drawImage(backimg, 0, 0, this.getWidth(), this.getHeight(), this); //重绘子组件,不然会出现异常“有个按钮需要鼠标移动到它上边才显示” super.paintChildren(g); } catch (Exception e) { } } } public class test { final int win_width = 400; final int win_height = 300; JFrame win = new JFrame("zqh电台"); //主窗体用Jframe JTextField t1 = new JTextField("请输入用户名"); JButton login = new JButton("登录"); JLabel l1 = new JLabel("登录时需要帮助?"); JButton b1 = new JButton("联系方式"); Zqhpanel zqhpanel=new Zqhpanel(); public void init(){ //-------------获取屏幕的大小-------------------- Toolkit tk = Toolkit.getDefaultToolkit();//得到Toolkit对象(实例化) Dimension screen=tk.getScreenSize();//得到屏幕的大小 int screen_wid=(int)screen.getWidth(); int screen_hei=(int)screen.getHeight(); // System.out.println (screen.getWidth());//输出屏幕的宽度 // System.out.println (screen.getHeight());//输出屏幕的高度 win.add(zqhpanel); win.setBounds((screen_wid-win_width)/2,(screen_hei-win_height)/2,win_width,win_height); win.setResizable(false); Box box1=Box.createVerticalBox(); Box ubox=Box.createHorizontalBox(); Box hbox=Box.createHorizontalBox(); t1.setPreferredSize(new Dimension(100,30)); login.setPreferredSize(new Dimension(80,30)); ubox.add(Box.createHorizontalStrut(50)); ubox.add(t1); ubox.add(Box.createHorizontalStrut(20)); ubox.add(login); l1.setPreferredSize(new Dimension(100,30)); b1.setPreferredSize(new Dimension(80,30)); hbox.add(Box.createHorizontalStrut(50)); hbox.add(l1); hbox.add(Box.createHorizontalStrut(30)); //设置文本和联系方式的水平间距 hbox.add(b1); box1.add(Box.createVerticalStrut(100)); box1.add(ubox); box1.add(Box.createVerticalStrut(20)); box1.add(hbox); zqhpanel.add(box1); // win.pack(); win.setVisible(true); } public static void main(String[] args) throws Exception { //设置一个窗口 test t1=new test(); t1.init(); } }

浙公网安备 33010602011771号