文章目录

  • java awt,swing图形化界面代码案例合集

java awt,swing图形化界面代码案例合集

package Demo1;
import java.awt.*;
public class Demo1 {public static void main(String[] args) {//创建一个窗口对象Frame frame = new Frame("这里测试windows窗口");//指定窗口位置,大小frame.setLocation(100,100);frame.setSize(500,300);//色值窗口可见frame.setVisible(true);}
}
package Demo1;import java.awt.*;public class Demo2 {public static void main(String[] args) {Frame frame = new Frame("计算器");//1.创建一个panel对象,里面存放一个textFiled组件Panel p = new Panel();p.add(new TextField(30));//2.把当前panel添加到frame的北边区域frame.add(p,BorderLayout.NORTH);//3.创建一个panel对象,并且设置他的布局管理为GridlayoutPanel p2 = new Panel();p2.setLayout(new GridLayout(3,3,4,4));for (int i = 0; i < 10; i++) {p2.add(new Button(i+""));}p2.add(new Button("+"));p2.add(new Button("-"));p2.add(new Button("*"));p2.add(new Button("/"));//5.把当前panel添加到frame中frame.add(p2);frame.pack();frame.setVisible(true);}
}
package Demo1;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.nio.charset.UnmappableCharacterException;public class Demo3 {public static void main(String[] args) {Frame frame = new Frame("这里测试cardlayout");//1.创建一个panel,用来存储多个卡片Panel p1 = new Panel();//2.创建Cardlayout对象,并且把该对象设置给之前创建的容器CardLayout cardLayout = new CardLayout();p1.setLayout(cardLayout);//3.往panel中存储多个组件
String[] names ={"A","B","C","D","E"};for (int i = 0; i <names.length; i++) {p1.add(names[i],new Button(names[i]));}//4.把panel放到frame的中间区域frame.add(p1);//5. 创建另外一个panel,p2,用来存储多个按钮组件
Panel p2 = new Panel();//6.创建5个按钮组件
Button b1 = new Button("privious");
Button b2 = new Button("next");
Button b3 = new Button("first");
Button b4 = new Button("last");
Button b5 = new Button("third");//7.创建一个事件监听器,监听按钮的点击动作ActionListener listener = new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {String actionCommand = e.getActionCommand();//这个字符就是按钮上的文字switch (actionCommand){case"privious":cardLayout.previous(p1);break;case"next":cardLayout.next(p1);break;case"first":cardLayout.first(p1);break;case"last":cardLayout.last(p1);break;case "third":cardLayout.show(p1,"C");break;}}};//8.把当前这个事件监听器和多个按钮绑定到一起
b1.addActionListener(listener);
b2.addActionListener(listener);
b3.addActionListener(listener);
b4.addActionListener(listener);
b5.addActionListener(listener);//9.把按钮添加到容器p2中
p2.add(b1);
p2.add(b2);
p2.add(b3);
p2.add(b4);
p2.add(b5);//10。把p2放在frame的南边区域frame.add(p2,BorderLayout.SOUTH);frame.pack();frame.setVisible(true);}
}
package Demo1;import javax.swing.*;
import java.awt.*;public class Demo4 {public static void main(String[] args){Frame frame = new Frame();//1.基于frame,创建一个boxlayout对象,并且垂直放置BoxLayout boxlayout = new BoxLayout(frame,BoxLayout.X_AXIS);//2.把Boxlayout设置给Frameframe.setLayout(boxlayout);//3.往frame中添加两个组件frame.add(new Button("button1"));frame.add(new Button("button2"));frame.pack();frame.setVisible(true);}
}
package Demo1;import javax.swing.*;
import java.awt.*;public class Demo5 {public static void main(String[] args) {Frame frame = new Frame("test");//1.创建一个水平排列的box容器Box b1 = Box.createHorizontalBox();//2.往容器里面添加两个按钮b1.add(new Button("button1"));b1.add(new Button("button2"));//3.创建一个垂直排列的容器Box b2 = Box.createVerticalBox();//4.往容器里面添加两个按钮b2.add(new Button("buttonA"));b2.add(new Button("buttonB"));//5.吧Box放入frame中frame.add(b1,BorderLayout.SOUTH);frame.add(b2,BorderLayout.NORTH);
frame.pack();
frame.setVisible(true);}
}
package Demo1;
import javax.swing.*;
import java.awt.*;
public class Demo6 {Frame frame = new Frame("这里测试基本组件");//定义一个按钮Button ok = new Button("确认");//定义一个复选框组CheckboxGroup cbg = new CheckboxGroup();//定义一个单选框,初始处于被选中状态,并添加到cbg组中Checkbox male = new Checkbox("男", cbg, true);//定义一个单选框,初始处于未被选中状态,并添加到cbg组中Checkbox female = new Checkbox("女", cbg, false);//定义一个复选框,初始处于未被选中状态Checkbox married = new Checkbox("是否已婚?", false);//定义一个下拉选择框Choice colorChooser = new Choice();//定义一个列表选择框List colorList = new List(6, true);//定义一个5行,20列的多行文本域TextArea ta = new TextArea(5, 20);//定义一个50列的单行文本域TextField tf = new TextField(50);public void init() {//往下拉选择框中添加内容colorChooser.add("红色");colorChooser.add("绿色");colorChooser.add("蓝色");//往列表选择框中添加内容colorList.add("红色");colorList.add("绿色");colorList.add("蓝色");//创建一个装载按钮和文本框的Panel容器Panel bottom = new Panel();bottom.add(tf);bottom.add(ok);//把bottom添加到Frame的底部frame.add(bottom,BorderLayout.SOUTH);//创建一个Panel容器,装载下拉选择框,单选框和复选框Panel checkPanel = new Panel();checkPanel.add(colorChooser);checkPanel.add(male);checkPanel.add(female);checkPanel.add(married);//创建一个垂直排列的Box容器,装载 多行文本域和checkPanelBox topLeft = Box.createVerticalBox();topLeft.add(ta);topLeft.add(checkPanel);//创建一个水平排列的Box容器,装载topLeft和列表选择框Box top = Box.createHorizontalBox();top.add(topLeft);top.add(colorList);//将top添加到frame的中间区域frame.add(top);//设置frame最佳大小并可见frame.pack();frame.setVisible(true);}public static void main(String[] args) {new Demo6().init();}
}
package Demo1;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;public class Demo7 {Frame frame =new Frame("test");TextField tf = new TextField("30");Button ok = new Button("ok");public void init(){//组装视图//监听视图
//        MyLister myLister = new MyLister();//注册监听ok.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {tf.setText("hello pofen");}});//把tf和ok放入frameframe.add(tf,BorderLayout.NORTH);frame.add(ok,BorderLayout.SOUTH);frame.pack();
frame.setVisible(true);}
//    private class MyLister implements  ActionListener{//
//        @Override
//        public void actionPerformed(ActionEvent e) {//            tf.setText("hello pofen");
//        }
//    }public static void main(String[] args) {new Demo7().init();}
}
package Demo1;import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;public class Demo8 {private Frame frame = new Frame("test pofen");//创建菜单条MenuBar menuBar = new MenuBar();//创建菜单组件Menu filemenu = new Menu("文件");Menu editMenu = new Menu("编辑");Menu formatMenu = new Menu("格式");//菜单项组件MenuItem auto = new MenuItem("自动换行");MenuItem copy =new MenuItem("复制");MenuItem paste =new MenuItem("粘贴");MenuItem comment =new MenuItem("注释 ctrl+shift+q",new MenuShortcut(KeyEvent.VK_Q,true));//关联款快捷键MenuItem canceComment = new MenuItem("取消注释");
TextArea textArea = new TextArea(6,40);public void init(){//组装视图
comment.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {System.out.print("ok : ");textArea.append("你点了菜单项  "+ e.getActionCommand());}
});
formatMenu.add(comment);
formatMenu.add(canceComment);
editMenu.add(auto);
editMenu.add(copy);
editMenu.add(paste);
editMenu.add(formatMenu);
//组装菜单条menuBar.add(filemenu);menuBar.add(editMenu);
//把菜单条放入到framen中menuBar.add(filemenu);frame.setMenuBar(menuBar);//设置frame最佳大小并且可见frame.pack();frame.setVisible(true);}public static void main(String[] args) {new Demo8().init();}
}
package Demo1;import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;public class Demo9 {private Frame frame = new Frame("test pofen");//创建菜单条MenuBar menuBar = new MenuBar();//创建菜单组件Menu filemenu = new Menu("文件");Menu editMenu = new Menu("编辑");Menu formatMenu = new Menu("格式");//菜单项组件MenuItem auto = new MenuItem("自动换行");MenuItem copy =new MenuItem("复制");MenuItem paste =new MenuItem("粘贴");MenuItem comment =new MenuItem("注释 ",new MenuShortcut(KeyEvent.VK_Q,true));//关联款快捷键MenuItem canceComment = new MenuItem("取消注释");TextArea textArea = new TextArea(6,40);public void init(){//组装视图comment.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {System.out.print("ok : ");textArea.append("你点了菜单项  "+ e.getActionCommand()+"\n");}});formatMenu.add(comment);formatMenu.add(canceComment);editMenu.add(auto);editMenu.add(copy);editMenu.add(paste);editMenu.add(formatMenu);
//组装菜单条menuBar.add(filemenu);menuBar.add(editMenu);
//把菜单条放入到framen中frame.setMenuBar(menuBar);frame.add(textArea);//设置frame最佳大小并且可见frame.pack();frame.setVisible(true);}public static void main(String[] args) {new Demo9().init();}
}
package Demo1;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;public class Demo10 {Frame frame =new Frame("这里测试绘图");
private  final String RECT_SHAPE="rect";
private  final String OVAL_SHAPE="oval";
Button buttonReact = new Button("绘制矩形");
Button buttonOval = new Button("绘制椭圆");
//定义一个变量,记录当前绘制椭圆还是矩形private String shape = "";
//自定义类,继承canvas类,重写paint(Grapics g)方法完成画图·private  class MyCanvas extends Canvas{@Overridepublic void paint(Graphics g){//绘制不同的图形if(shape.equals(RECT_SHAPE)){g.setColor(Color.black);//设置画笔的颜色为黑色g.drawRect(100,100,150,100);//绘制矩形}else if(shape.equals(OVAL_SHAPE)){g.setColor(Color.RED);g.drawOval(100,100,150,100);//绘制椭圆}}
}
//创建自定义的画布对象MyCanvas drawArea = new MyCanvas();
public void init(){//组装视图buttonReact.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {//修改标记的值为rectshape = RECT_SHAPE;drawArea.repaint();}});buttonOval.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {shape = OVAL_SHAPE;drawArea.repaint();}});//panel承载按钮Panel p = new Panel();p.add(buttonOval);p.add(buttonReact);frame.add(p,BorderLayout.SOUTH);//drawArea的大小需要设置drawArea.setPreferredSize(new Dimension(300,300));frame.add(drawArea);frame.pack();frame.setVisible(true);}public static void main(String[] args) {new Demo10().init();}
}
package Demo1;import javax.security.auth.kerberos.KerberosKey;
import java.awt.*;
import java.awt.event.*;
import javax.swing.Timer;
public class Demo11 {int sum = -1;//创建窗口对象private Frame frame = new Frame("弹球游戏");//桌面宽度,高度private final int TABLE_WIDTH = 400;private final int TABLE_HEIGHT = 400;//球拍的高度和宽度private final int RACKET_WIDTH = 60;private final int RACKET_HEIGHT = 10;//小球的大小private final int BALL_SIZE = 16;//定义变量。记录小球的坐标private int ballX = 120;private int ballY = 20;//定义变量。记录小球在xy方向分别移动的速度private int speedY = 10;private int speedX = 5;//定义变量记录球拍的坐标private int racketX = 120;private  int racketY = 340;//定义一个变量,标识当前游戏是否已经结束private boolean isOver = false;//声明一个定时器private Timer timer;//自定义一个类,继承canvas,充当画布private class myCanvas extends Canvas {@Overridepublic void paint(Graphics g) {//这里绘制内容//游戏结束if (isOver) {g.setColor(Color.BLUE);g.setFont(new Font("Timew", Font.BOLD, 30));g.drawString("游戏结束!,你一共成功了"+sum+"次", 50, 200);} else {//游戏中//绘制球g.setColor(Color.RED);g.fillOval(ballX, ballY, BALL_SIZE, BALL_SIZE);//绘制球拍g.setColor(Color.PINK);g.fillRect(racketX, racketY, RACKET_WIDTH, RACKET_HEIGHT);}}}//创建绘制区域myCanvas drawArea = new myCanvas();public void init() {//组装视图以及游戏逻辑的控制//完成球拍坐标的变化KeyListener keyListener = new KeyAdapter() {@Overridepublic void keyPressed(KeyEvent e) {int keyCode = e.getKeyCode();if (keyCode == KeyEvent.VK_LEFT) {//应该向左移动if (racketX >= 10) {racketX -= 20;}}if (keyCode == KeyEvent.VK_RIGHT) {//应该向右移动if (racketX < TABLE_WIDTH - RACKET_WIDTH) {racketX += 20;}}if (keyCode == KeyEvent.VK_UP) {//应该向右移动racketY -= 20;}}};//给Frame和drawarea注册监听器frame.addKeyListener(keyListener);drawArea.addKeyListener(keyListener);//小球坐标的控制ActionListener task = new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {if(ballX<=0||ballX>=TABLE_WIDTH+BALL_SIZE){speedX=-speedX;}if(ballY<=0||(ballY>=racketY-BALL_SIZE&&ballX>racketX&&ballX<racketX+RACKET_WIDTH)){speedY=-speedY;sum = sum+1;}if(ballY>racketY-BALL_SIZE&&(ballX<racketX || ballX> racketX+RACKET_WIDTH)){//小球超出了球拍范围,结束游戏timer.stop();isOver=true;//重新绘制界面drawArea.repaint();//停止定时器}//根据边界范围修正速度//更新小球的坐标,重新绘制界面ballX-=speedX;ballY+=speedY;drawArea.repaint();}};timer = new Timer(100,task);timer.start();drawArea.setPreferredSize(new Dimension(TABLE_WIDTH,TABLE_HEIGHT));frame.add((drawArea));//设置frame的大小,并且可视frame.pack();frame.setVisible(true);}public static void main(String[]args){new Demo11().init();}}
package Demo1;import javax.swing.*;
import java.awt.*;public class Demo12 {JFrame f = new JFrame("Swing基本组件的测试");//声明菜单相关组件JMenuBar menuBar = new JMenuBar();JMenu fileMenue = new JMenu("文件");JMenu editMenue = new JMenu("编辑");JMenuItem auto = new JMenuItem("自动换行");JMenuItem copy = new JMenuItem("复制");JMenuItem paste = new JMenuItem("粘贴");JMenu formatMenu = new JMenu("格式");JMenuItem comment = new JMenuItem("注释");JMenuItem cancelcomment = new JMenuItem("取消注释");//声明文本域JTextArea ta = new JTextArea(8,20);String[] colorsList ={"红色","绿色","蓝色"};//声明列表框JList<String> colorList = new JList<String>(colorsList);//声明选择组件JComboBox<String> colorSelect = new JComboBox<String>();ButtonGroup bg = new ButtonGroup();JRadioButton male = new JRadioButton("男",false);JRadioButton female = new JRadioButton("男",true);JCheckBox isMarried = new JCheckBox("是否已婚?",true);//声明底部JTextField tf = new JTextField(40);JButton ok = new JButton("确定",new ImageIcon("Code2\\img\\1.jpg"));//声明右键菜单JPopupMenu jPopupMenu = new JPopupMenu();ButtonGroup poupButtonBg = new ButtonGroup();JRadioButtonMenuItem metalItem = new JRadioButtonMenuItem("metal 风格");JRadioButtonMenuItem nimbusItem = new JRadioButtonMenuItem("nimbus 风格");JRadioButtonMenuItem wiodowsItem = new JRadioButtonMenuItem("wiodows 风格");JRadioButtonMenuItem wiodowsClassItem = new JRadioButtonMenuItem("wiodows 经典风格");JRadioButtonMenuItem motifItem = new JRadioButtonMenuItem("mmotif 风格");
//初始化界面public void init(){//组装视图//组装底部JPanel bottonPanel = new JPanel();bottonPanel.add(tf);bottonPanel.add(ok);f.add(bottonPanel,BorderLayout.SOUTH);//组装选择相关的组件JPanel selectPanle = new JPanel();colorSelect.addItem("红色");colorSelect.addItem("绿色");colorSelect.addItem("蓝色");selectPanle.add(colorSelect);bg.add(male);bg.add(female);selectPanle.add(male);selectPanle.add(female);selectPanle.add(isMarried);//组装文本域和选择相关组件Box topleft = Box.createVerticalBox();topleft.add(ta);topleft.add(selectPanle);//组装顶部Box top = Box.createHorizontalBox();top.add(topleft);top.add(colorList);f.add(top);//组装顶部菜单formatMenu.add(comment);formatMenu.add(cancelcomment);editMenue.add(auto);editMenue.addSeparator();editMenue.add(formatMenu);editMenue.add(copy);editMenue.add(paste);menuBar.add(fileMenue);menuBar.add(editMenue);f.setJMenuBar(menuBar);//组装右键菜单poupButtonBg.add(metalItem);poupButtonBg.add(nimbusItem);poupButtonBg.add(wiodowsItem);poupButtonBg.add(wiodowsClassItem);poupButtonBg.add(motifItem);poupButtonBg.add(metalItem);//不需要在监听鼠标事件了ta.setComponentPopupMenu(jPopupMenu);f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.pack();f.setVisible(true);}public static void main(String[] args) {new Demo12().init();}//定义一个方法,用于改变界面风格
}
package Demo1;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;public class Demo13 {JFrame jf = new JFrame("测试工具条");JTextArea jta = new JTextArea(6,3);//声明工具条相关内容JToolBar jToolBar = new JToolBar("播放工具条",SwingConstants.HORIZONTAL);
//创建3个acction、对象//传递的参数,name和icon。最终添加到工具条中Action pre = new AbstractAction() {@Overridepublic void actionPerformed(ActionEvent e) {jta.append("上一曲.\n");}
};Action pause = new AbstractAction() {@Overridepublic void actionPerformed(ActionEvent e) {jta.append("暂停.\n");}};Action next = new AbstractAction() {@Overridepublic void actionPerformed(ActionEvent e) {jta.append("下一曲.\n");}};public void init(){//通过acction创建buttonJButton prebtn = new JButton(pre);JButton pausebtn = new JButton(pause);JButton nextbtn = new JButton(next);//组装视图
//        jToolBar.add(pre);
//        jToolBar.addSeparator();
//        jToolBar.add(pause);
//        jToolBar.addSeparator();
//        jToolBar.add(next);jToolBar.add(prebtn);jToolBar.addSeparator();jToolBar.add(pausebtn);jToolBar.addSeparator();jToolBar.add(nextbtn);jToolBar.setFloatable(true);//文本框默认不支持滚动
//        //把一个组件设置到jcrolpane中,那么该组件就支持滚动条了
//        JScrollBar jScrollBar = new JScrollBar(jta);
//        jf.add(jScrollBar);jf.add(jToolBar,BorderLayout.NORTH);jf.add(jta);jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jf.pack();jf.setVisible(true);
}public static void main(String[] args) {new Demo13().init();}
}
package Demo1;
import  java.awt.*;
import java.awt.event.ActionEvent;
import javax.swing.*;public class Demo14 {JFrame jFrame = new JFrame("测试颜色选择器");JTextArea jta = new JTextArea("我是pofen",6,30);JButton btn = new JButton(new AbstractAction("change text color") {@Overridepublic void actionPerformed(ActionEvent e) {//弹出颜色选择器Color result = JColorChooser.showDialog(jFrame,"颜色选择器",Color.white);//修改文本框北京jta.setBackground(result);}});public void init(){jFrame.add(jta);jFrame.add(btn,BorderLayout.SOUTH);jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jFrame.pack();jFrame.setVisible(true);}public static void main(String[] args) {new Demo14().init();}
}
package Demo1;
import javax.imageio.ImageIO;
import  javax.swing.*;
import  java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;public class Demo15 {JFrame jf = new JFrame("文件选择器");JMenuBar jmb = new JMenuBar();JMenu jmenu = new JMenu("file");JMenuItem open = new JMenuItem(new AbstractAction("打开") {@Overridepublic void actionPerformed(ActionEvent e) {//显示一个文件显示器JFileChooser fileChooser = new JFileChooser(".");fileChooser.showOpenDialog(jf);//获取选择的文件File file = fileChooser.getSelectedFile();//进行显示try {image = ImageIO.read(file);drawArea.repaint();} catch (IOException ioException) {ioException.printStackTrace();}}});JMenuItem save = new JMenuItem(new AbstractAction("protect") {@Overridepublic void actionPerformed(ActionEvent e) {//显示一个文件显示器JFileChooser fileChooser = new JFileChooser(".");fileChooser.showOpenDialog(jf);//获取选择的保存文件路径File file = fileChooser.getSelectedFile();try {ImageIO.write(image,"jpeg",file);} catch (IOException ioException) {ioException.printStackTrace();}//进行显示try {image = ImageIO.read(file);drawArea.repaint();} catch (IOException ioException) {ioException.printStackTrace();}}});BufferedImage image;private  class MyCanvas extends JPanel{//swing提供的组件都使用了图片缓冲技术@Overridepublic void paint(Graphics g) {//把图片绘制到插件上g.drawImage(image,0,0,null);}}MyCanvas drawArea = new MyCanvas();public void init(){jmenu.add(open);jmenu.add(save);jmb.add(jmenu);jf.setJMenuBar(jmb);drawArea.setPreferredSize(new Dimension(740,500));jf.add(drawArea);jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jf.pack();jf.setVisible(true);}public static void main(String[] args) {new Demo15().init();}
}
package Demo1;import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;public class Demo16 {JFrame jf = new JFrame("测试消息对话框");JTextArea jta = new JTextArea(6,30);JButton btn = new JButton(new AbstractAction("弹出消息对话框") {@Overridepublic void actionPerformed(ActionEvent e) {//弹出一个文本框,显示文本域中输入的内容
String text = " 你输入了   :"+jta.getText();
//JOptionPane.showMessageDialog(jf,text,"消息对话框",JOptionPane.INFORMATION_MESSAGE);
//JOptionPane.showMessageDialog(jf,text,"消息对话框",JOptionPane.WARNING_MESSAGE);
//JOptionPane.showMessageDialog(jf,text,"消息对话框",JOptionPane.QUESTION_MESSAGE);
JOptionPane.showMessageDialog(jf,text,"消息对话框",JOptionPane.PLAIN_MESSAGE);}});public void init(){jf.add(jta);jf.add(btn, BorderLayout.SOUTH);//组装视图jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jf.pack();jf.setVisible(true);}public static void main(String[] args) {new Demo16().init();}
}
package Demo1;import com.sun.jdi.PathSearchingVirtualMachine;import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;public class Demo17 {JFrame jf = new JFrame("测试确认对话框");JTextArea jta = new JTextArea(15,30);
JButton btn = new JButton(new AbstractAction("弹出确认消息对话框") {@Overridepublic void actionPerformed(ActionEvent e) {String text = jta.getText();int result = JOptionPane.showConfirmDialog(jf,text,"确认对话框",JOptionPane.YES_NO_CANCEL_OPTION);
jta.append("\n");if(result==JOptionPane.YES_OPTION){jta.append("用户点击了 是 按钮\n");}if(result==JOptionPane.NO_OPTION){jta.append("用户点击了 否 按钮\n");}//        if(result==JOptionPane.OK_OPTION){//            jta.append("用户点击了 确认 按钮\n");
//        }if(result==JOptionPane.CANCEL_OPTION){jta.append("用户点击了 取消 按钮\n");}}
});
public void init(){jf.add(jta);
jf.add(btn, BorderLayout.SOUTH);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.pack();
jf.setVisible(true);
}public static void main(String[] args) {new Demo17().init();}
}
package Demo1;import com.sun.jdi.PathSearchingVirtualMachine;import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;public class Demo18 {JFrame jf = new JFrame("测试输入对话框");JTextArea jta = new JTextArea(15,30);JButton btn = new JButton(new AbstractAction("弹出输入消息对话框") {@Overridepublic void actionPerformed(ActionEvent e) {String result =  JOptionPane.showInputDialog(jf, "请填写你的银行卡账号", "输入对话框", JOptionPane.INFORMATION_MESSAGE);jta.append(result);}});public void init(){jf.add(jta);jf.add(btn, BorderLayout.SOUTH);jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jf.pack();jf.setVisible(true);}public static void main(String[] args) {new Demo18().init();}
}
package Demo1;import com.sun.jdi.PathSearchingVirtualMachine;import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;public class Demo19 {JFrame jf = new JFrame("测试选项对话框");JTextArea jta = new JTextArea(15,30);JButton btn = new JButton(new AbstractAction("弹出选项消息对话框") {@Overridepublic void actionPerformed(ActionEvent e) {jta.append("\n");int result =JOptionPane.showOptionDialog(jf,"选择尿不湿号码","选项对话框",JOptionPane.DEFAULT_OPTION,JOptionPane.INFORMATION_MESSAGE,null,new String[]{"大号","中号","小号"},"中号");switch (result){case 0:jta.append("用户选择了大号");break;case 1 :jta.append("用户选择了中号");break;case 2 :jta.append("用户选择了小号");break;}}});public void init(){jf.add(jta);jf.add(btn, BorderLayout.SOUTH);jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jf.pack();jf.setVisible(true);}public static void main(String[] args) {new Demo19().init();}
}
package Demo1;import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.plaf.basic.BasicButtonListener;public class Demo20 {int i =0;JFrame jf = new JFrame("测试JTabledPane");
JTabbedPane jTabbedPane = new JTabbedPane(SwingConstants.LEFT,JTabbedPane.SCROLL_TAB_LAYOUT);public void init(){//添加标签jTabbedPane.addTab("用户管理",new ImageIcon("\\img\\1.jpg"),new JList<String>(new String[]{"商品一","商品二","商品三"}));jTabbedPane.addTab("用户管理",new JList<String>(new String[]{"用户一","用户二","用户三"}));jTabbedPane.addTab("用户管理",new ImageIcon("\\img\\2.jpg"),new JList<String>(new String[]{"订单一","订单二","订单三","订单4"}));//完成设置jTabbedPane.setEnabledAt(0,false);jTabbedPane.setSelectedIndex(1);//监听当前选中情况jTabbedPane.addChangeListener(new ChangeListener() {@Overridepublic void stateChanged(ChangeEvent e) {int selectedIndex=jTabbedPane.getSelectedIndex();JOptionPane.showMessageDialog(jf,"当前选中了第:"+(selectedIndex+1)+"个标签");i++;System.out.println("ok pofen"+i);}});jf.add(jTabbedPane);//设置窗口位置大小jf.setBounds(400,400,400,400);jf.setResizable(false);jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jf.setVisible(true);}public static void main(String[] args){new Demo20().init();}
}
package Demo1;import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;public class Demo21 {JFrame jf  = new JFrame("测试进度条");JCheckBox indeterminate = new JCheckBox("不确定进度");JCheckBox noBorder= new JCheckBox("不绘制边框");//创建进度条JProgressBar bar = new JProgressBar(JProgressBar.HORIZONTAL,0,100);public void init(){//组装视图//处理复选框行为
indeterminate.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {//获取有没有选中boolean select =  indeterminate.isSelected();//设置不确定进度bar.setIndeterminate(select);bar.setStringPainted(!select);}
});
noBorder.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {boolean selected = noBorder.isSelected();bar.setStringPainted(!selected);}
});
Box box = Box.createVerticalBox();
box.add(indeterminate);
box.add(noBorder);
//设置进度条属性bar.setStringPainted(true);//百分百bar.setBorderPainted(true);//边框jf.setLayout(new FlowLayout());jf.add(box);jf.add(bar);jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jf.pack();jf.setVisible(true);//通过模拟循环修改进度条的精度for (int i = 0; i <=100; i++) {//修改已经完成的工作量bar.setValue(i);try {Thread.sleep(500);} catch (InterruptedException e) {e.printStackTrace();}}}public static void main(String[] args) {new Demo21().init();}
}
package Demo1;import javax.swing.*;
import javax.swing.border.EtchedBorder;
import javax.swing.border.TitledBorder;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.List;
import java.util.Vector;public class Demo22 {JFrame jf =new JFrame("列表测试框");String[] books = {"java自学宝典","轻量级javaee企业应用实战","Android基础教程","Jquery实战教程","spriingboot企业级开发"};//定义 布局选择按钮,所在的面板JPanel layoutPanel = new JPanel();ButtonGroup layoutgroup = new ButtonGroup();//定义 选择模式按钮,所在面板JPanel selectModelPanel = new JPanel();ButtonGroup selectModeGroup = new ButtonGroup();JTextArea favorite= new JTextArea(4,40);//用一个字符串数组来创建一个JList对象JList<String > bookList;JComboBox<String> bookSelector;public void init(){//组装视图//组装JListbookList = new JList<>(books);addBtn2layoutPanel("纵向滚动",JList.VERTICAL);addBtn2layoutPanel("纵向滚动",JList.VERTICAL_WRAP);addBtn2layoutPanel("纵向滚动",JList.HORIZONTAL_WRAP);addBtn2SelectPanel("无限制",ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);addBtn2SelectPanel("单选",ListSelectionModel.SINGLE_SELECTION);addBtn2SelectPanel("单范围",ListSelectionModel.SINGLE_INTERVAL_SELECTION);//对JList设置bookList.setVisibleRowCount(3);bookList.setSelectionInterval(2,4);bookList.addListSelectionListener(new ListSelectionListener() {@Overridepublic void valueChanged(ListSelectionEvent e) {//获取当前选择的条目List<String> selectdValueList = bookList.getSelectedValuesList();//把当前条目的内容设置到文本域中favorite.setText("");for(String str: selectdValueList){favorite.append(str+"\n");}}});Box booklistVBox =Box.createVerticalBox();booklistVBox.add(new JScrollPane(bookList));booklistVBox.add(layoutPanel);booklistVBox.add(selectModelPanel);//组装JcomboxVector<String> vector = new Vector<>();List<String> list = List.of("java自学宝典","轻量级javaee企业应用实战","Android基础教程","Jquery实战教程","spriingboot企业级开发");vector.addAll(list);bookSelector = new JComboBox<>(vector);bookSelector.setEditable(true);bookSelector.setMaximumRowCount(5);bookSelector.addItemListener(new ItemListener() {@Overridepublic void itemStateChanged(ItemEvent e) {Object selectedItem =   bookSelector.getSelectedItem();favorite.setText(selectedItem.toString());}});//组装顶部左右两部分Box topBox = Box.createHorizontalBox();topBox.add(booklistVBox);JPanel booksSelectPanel = new JPanel();booksSelectPanel.add(bookSelector);topBox.add(booksSelectPanel);//柱状底部JPanel bottonPanel = new JPanel();bottonPanel.setLayout(new BorderLayout());bottonPanel.add(new JLabel("你追喜欢的书是"),BorderLayout.NORTH);bottonPanel.add(favorite);//组装整体Box holeBox = Box.createVerticalBox();holeBox.add(topBox);holeBox.add(bottonPanel);jf.add(holeBox);jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jf.pack();jf.setVisible(true);}
//封装方法,往layout中添加单选public void addBtn2layoutPanel(String name ,  int layoutType){//设置标题边框layoutPanel.setBorder(new TitledBorder(new EtchedBorder(),"确定选项布局"));JRadioButton button = new JRadioButton(name);layoutPanel.add(button);if(layoutgroup.getButtonCount()==0){//让默认第一个按钮选中button.setSelected(true);}layoutgroup.add(button);button.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {bookList.setLayoutOrientation(layoutType);}});}//封装方法给selectModelPanle添加按钮public void addBtn2SelectPanel(String name ,  int selectModel){//设置标题边框selectModelPanel.setBorder(new TitledBorder(new EtchedBorder(),"确定选项布局"));JRadioButton button = new JRadioButton(name);layoutPanel.add(button);if(selectModeGroup.getButtonCount()==0){//让默认第一个按钮选中button.setSelected(true);}selectModelPanel.add(button);button.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {bookList.setSelectionMode(selectModel);}});}public static void main(String[] args) {new Demo22().init();}
}
package Demo1;import javax.swing.*;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;public class Demo23 {JFrame jf = new JFrame("简单数");public void init() {DefaultMutableTreeNode root = new DefaultMutableTreeNode("中国");DefaultMutableTreeNode guangdong = new DefaultMutableTreeNode("广东");DefaultMutableTreeNode guanxi = new DefaultMutableTreeNode("广西");DefaultMutableTreeNode foshan = new DefaultMutableTreeNode("佛山");DefaultMutableTreeNode shantou = new DefaultMutableTreeNode("汕头");DefaultMutableTreeNode guilin = new DefaultMutableTreeNode("桂林");DefaultMutableTreeNode nanling = new DefaultMutableTreeNode("南宁");//定义按钮。完成操作JButton addSiblingBtn = new JButton("添加兄弟结点");JButton addChildBtn = new JButton("添加子节点");JButton deletBtn = new JButton("删除结点");JButton editBtn = new JButton("编辑当前结点");//组装结点之间的关系root.add(guangdong);root.add(guanxi);guangdong.add(foshan);guangdong.add(shantou);guanxi.add(guilin);guanxi.add(nanling);JTree tree = new JTree(root);//完成树的结点编辑代码
tree.setEditable(true);DefaultTreeModel model = (DefaultTreeModel) tree.getModel();jf.add(tree);jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jf.pack();jf.setVisible(true);}public static void main(String[] args) {new Demo23().init();}
}
package Demo1;import javax.swing.*;
import javax.swing.table.TableColumn;public class Demo24 {JFrame jf = new JFrame("简单表格");
//创建一个一维数组,用于存放标题Object[] titles = {"姓名","年龄","性别"};//创建一个二维数组,存储数据Object[][] data = {{"李清照","女","20"},{"苏格拉底","男","55"},{"苏格拉高","男","45"},{"苏格拉中","男","65"},{"李白","男","95"},{"冗余和","男","40"},{"和域诗","女","18"}};public void init(){//组装视图JTable jtable = new JTable(data,titles);//设置选择模式//jtable.getSelectionModel().setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);//默认,无限制jtable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);//单行//jtable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);//只能选择两个连续范围//设置宽列TableColumn column_1 = jtable.getColumn(titles[0]);column_1.setMaxWidth(30);TableColumn column_3 = jtable.getColumn(titles[2]);column_3.setMaxWidth(30);jf.add(new JScrollPane(jtable));
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.pack();
jf.setVisible(true);}public static void main(String[] args) {new Demo24().init();}
}

# java swing,awt图形化界面代码案例合集相关推荐

  1. java swing(GUI图形化界面)基础教程3-添加事件监听1

    学习此内容前建议先去学习java基础知识: 匿名内部类 (学的多的可以用lambda表达式,更加简便) 好, 我们先看一下之前的代码(即一个窗口和一个按钮) 如果想看详细内容,链接为: (23条消息) ...

  2. java swing(GUI图形化界面)基础教程2-添加组件

    书接上回,这是我们已经写好的代码: public static void main(String[] args) {//这是一个窗口类JFrame frame=new JFrame();//设置窗口位 ...

  3. java swing(GUI图形化界面)基础教程1

    开门见山,直接来吧! 1.窗口的出现 首先,我们想要窗口出现,需要知道窗口类是什么,即: public static void main(String[] args) {//这是一个窗口类JFrame ...

  4. java ide 进行图形化界面时不能显示汉字_主流开源IDE汇总,Java程序员一定能用上!...

    点击蓝字 · 关注我们 谈开发,Java肯定是个绕不过去的话题,那大家到底都用哪些IDE呢?下面给大家讲讲7个程序员最爱的开源IDE工具,当然了这只是整理出来的一部分,如果你有更好用的,也欢迎在评论区 ...

  5. centos6.5环境基于conga的web图形化界面方式配置rhcs集群

    一.简介 RHCS 即 RedHat Cluster Suite ,中文意思即红帽集群套件.红帽集群套件(RedHat Cluter Suite, RHCS)是一套综合的软件组件,可以通过在部署时采用 ...

  6. (六)Python查询12306余票:升级版-----图形化界面代码

    上一篇–>添加票价信息 实现效果: 主要代码观看 12306.py: from tkinter import * import re import tkinter.messagebox as m ...

  7. JAVA之旅(三十一)——JAVA的图形化界面,GUI布局,Frame,GUI事件监听机制,Action事件,鼠标事件

    JAVA之旅(三十一)--JAVA的图形化界面,GUI布局,Frame,GUI事件监听机制,Action事件,鼠标事件 有段时间没有更新JAVA了,我们今天来说一下JAVA中的图形化界面,也就是GUI ...

  8. JAVA Swing 图形化界面编程

    JAVA Swing 图形化界面编程 目录 1.组件 1.1 基本组件 1.2. 组件边框 1.3. JToolBar 工具条 1.4 JColorChooser 颜色选择器 1.5 JFileCho ...

  9. Java图形化界面编程之——AWT

    目录 1.AWT简介 2.AWT继承体系 3.Container容器 3.1.Container继承体系 3.2.常用API 3.2.1.Component的常用方法 3.2.2.Container的 ...

最新文章

  1. 【docker】常用命令
  2. 精通webpack的5大关键点
  3. 一文了解GaussDB 200的产品架构、数据流程、组网方案、服务部署原则、企业级增强特性......
  4. Zabbix 监控Nginx连接的状态
  5. 漏扫工具:Docker一键安装AWVS和Nessus
  6. 传输层 TCP 三次握手中性能优化 SYN_RCV 状态/syn攻击
  7. 计算机文件拒绝被访问,文件访问被拒绝_电脑文件访问被拒绝,需要权限
  8. 推荐13个高清优质无版权图库
  9. 一个屌丝程序猿的人生(三)
  10. linux 搜狗不能打中文,linux下搜狗输入法不能输入中文的解决方案
  11. android刷win8,驰为VX8 3G Win8刷安卓系统固件教程发布
  12. Win10下Flutter开发环境搭建这一篇足矣
  13. 程序员用软件测试原理解读蚂蚁集团上市受阻!
  14. mysql主从配置duxi_Mysql主从同步配置
  15. case/casez/casex 区别与综合
  16. 【信号处理】基于蚁群优化随机共振检测附matlab代码
  17. 【python】pycharm 中导入本地下载好的库
  18. Haskell函数式编程学习笔记
  19. java 客户端定时任务_定时任务最简单的3种实现方法(超实用)
  20. 仿豆丁网仿百度文库在线文档分享源码(全套和全部转换工具后台)

热门文章

  1. ARM简单程序设计【嵌入式系统】
  2. 【CSS】盒子模型内边距 ② ( 内边距复合写法 | 代码示例 )
  3. 985大学计算机国赛,盘点通往985、211院校的108条路,总有一条适合你的
  4. BLV脉动阵列实现矩阵SVD分解
  5. MATLAB去除数据中的异常值、离群值
  6. 把图片压缩成指定大小,释放你的内存空间
  7. 5 款傻瓜式手机 APP 开发工具
  8. 橙色的商务企业网站模板 html整站下载 企业网站模板
  9. 白苹果了怎么办_建行储蓄卡云闪付bug还款玩法(苹果和安卓机攻略)
  10. c语言中abs与labs的区别,C / C ++中的abs(),labs(),llabs()函数