专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

Java运用jnavlcj实现音乐和视频的播放器1主界面设计

  白雨青工作站发文地址:Java运用jna、vlcj实现音乐和视频的播放器1主界面设计白雨青工作站
  一、播放器主框架publicclassMainFrame{publicJFrameframe;publicintwidth100;publicintheight350;publicMainFrame(){framenewJFrame();frame。setResizable(false);frame。setDefaultCloseOperation(JFrame。EXITONCLOSE);frame。setSize(height,width);frame。setLocationRelativeTo(null);frame。setLayout(null);去掉窗口的装饰frame。setUndecorated(true);采用指定的窗口装饰风格frame。getRootPane()。setWindowDecorationStyle(JRootPane。NONE);设置窗体圆角,最后两个参数分别为圆角的宽度、高度数值,一般这两个数值都是一样的AWTUtilities。setWindowShape(frame,newRoundRectangle2D。Double(0。0D,0。0D,frame。getWidth(),frame。getHeight(),20。0D,20。0D));设置背景颜色,记住一定要修改frame。getContentPane()的颜色,因为我们看到的都是这个的颜色而并不是frame的颜色frame。getContentPane()。setBackground(Color。LIGHTGRAY);frame。setVisible(true);}}
  效果:
  二、绘制自定义窗口,添加最小化和关闭按钮
  1、自定义一个button类继承JButtonimportjavax。swing。JButton;publicclassDIYButtonextendsJButton{publicDIYButton(){super();TODOAutogeneratedconstructorstub不绘制边框setBorderPainted(false);按钮设置为透明,这样就不会挡着后面的背景setContentAreaFilled(false);}}
  2、自定义一个panel,里面存放logo,窗口名称,最小化,关闭按钮importjava。awt。Color;importjava。awt。event。ActionEvent;importjava。awt。event。ActionListener;importjavax。swing。ImageIcon;importjavax。swing。JFrame;importjavax。swing。JLabel;importjavax。swing。JPanel;publicclassMainFrameBarextendsJPanelimplementsActionListener{privateJLabeltitleLabel;privateDIYButtonwinbtnlogo;privateDIYButtonwinbtnmin;privateDIYButtonwinbtnclose;publicMainFrameBar(){winbtnlogonewDIYButton();winbtnlogo。setBounds(10,5,16,16);winbtnlogo。setIcon(newImageIcon(iconwinbtnlogo。png));titleLabelnewJLabel();titleLabel。setBounds(28,3,80,20);winbtnminnewDIYButton();winbtnmin。setBounds(300,5,16,16);winbtnmin。setIcon(newImageIcon(iconwinbtnmin。png));winbtnclosenewDIYButton();winbtnclose。setBounds(320,5,16,16);winbtnclose。setIcon(newImageIcon(iconwinbtnclose。png));setBackground(Color。gray);setLayout(null);add(titleLabel);add(winbtnlogo);add(winbtnmin);add(winbtnclose);winbtnmin。setActionCommand(min);winbtnclose。setActionCommand(close);winbtnmin。addActionListener(this);winbtnclose。addActionListener(this);}publicvoidactionPerformed(ActionEvente){if(e。getActionCommand()min){MainFrame。getFrame()。setExtendedState(JFrame。ICONIFIED);}if(e。getActionCommand()close){System。exit(0);}}publicJLabelgetTitleLabel(){returntitleLabel;}publicvoidsetTitleLabel(JLabeltitleLabel){this。titleLabeltitleLabel;}publicDIYButtongetWinbtnlogo(){returnwinbtnlogo;}publicvoidsetWinbtnlogo(DIYButtonwinBtnLogo){winbtnlogowinBtnLogo;}publicDIYButtongetWinbtnmin(){returnwinbtnmin;}publicvoidsetWinbtnmin(DIYButtonwinBtnMin){winbtnminwinBtnMin;}publicDIYButtongetWinbtnclose(){returnwinbtnclose;}publicvoidsetWinbtnclose(DIYButtonwinBtnClose){winbtnclosewinBtnClose;}}
  效果:
  三、绘制中间区域
  1、自定义播放器进度条importjava。awt。Color;importjava。awt。Font;importjavax。swing。JLabel;importjavax。swing。JPanel;播放器进度条publicclassRateextendsJPanel{privateJLabelrate;publicRate(){super();TODOAutogeneratedconstructorstubsetLayout(null);setBackground(newColor(255,255,255));ratenewJLabel(,JLabel。CENTER);rate。setForeground(newColor(255,255,255));rate。setVisible(true);rate。setFont(newFont(Font。DIALOG,0,25));add(rate);setVisible(true);}}
  2、进度条风格importjavax。swing。;importjavax。swing。plaf。basic。BasicSliderUI;importjava。awt。;publicclassSliderStyleextendsBasicSliderUI{publicSliderStyle(JSliderjSlider){super(jSlider);}重绘游标publicvoidpaintThumb(Graphicsg){Graphics2Dg2d(Graphics2D)g;BasicStrokestrokenewBasicStroke(3,BasicStroke。CAPROUND,BasicStroke。JOINROUND);g2d。setStroke(stroke);g2d。setComposite(AlphaComposite。getInstance(AlphaComposite。SRCOVER,1));g2d。setRenderingHint(RenderingHints。KEYANTIALIASING,RenderingHints。VALUEANTIALIASON);GradientPaintgpnewGradientPaint(0,0,newColor(255,255,255),0,thumbRect。height,newColor(255,255,255));g2d。setPaint(gp);g2d。fillOval(thumbRect。x,thumbRect。y5,10,10);BasicStrokestroke1newBasicStroke(3,BasicStroke。CAPROUND,BasicStroke。JOINROUND);g2d。setStroke(stroke1);g2d。drawLine(0,thumbRect。height2,thumbRect。x8,thumbRect。height2);}重绘进度条publicvoidpaintTrack(Graphicsg){Graphics2Dg2d(Graphics2D)g;g2d。setRenderingHint(RenderingHints。KEYANTIALIASING,RenderingHints。VALUEANTIALIASOFF);设定渐变g2d。setComposite(AlphaComposite。getInstance(AlphaComposite。SRCOVER,0。3f));g2d。setPaint(newGradientPaint(0,0,newColor(200,200,200),0,trackRect。height,newColor(255,255,255),true));g2d。setStroke(newBasicStroke(3,BasicStroke。CAPROUND,BasicStroke。JOINROUND));g2d。drawLine(8,trackRect。height21,trackRect。width8,trackRect。height21);}}
  3、自定义一个panel,存放上一首、下一首、播放暂停按钮、当前时间、总时间、进度条、歌曲名称importjava。awt。Color;importjava。awt。Cursor;importjava。awt。event。ActionEvent;importjava。awt。event。ActionListener;importjava。awt。event。MouseAdapter;importjava。awt。event。MouseEvent;importjavax。swing。ImageIcon;importjavax。swing。JLabel;importjavax。swing。JPanel;importjavax。swing。JSlider;importcom。byq。player。ui。component。Rate;importcom。byq。player。ui。style。SliderStyle;publicclassMainFrameContainextendsJPanelimplementsActionListener{privateDIYButtonwinbtnprev;privateDIYButtonwinbtnplay;privateDIYButtonwinbtnnext;privateRaterate;进度条privateJLabelmediaName;privateJLabelcurrentTime;privateJLabeltotalTime;privateJSliderplayProcessSlider;privateintlen10;publicMainFrameContain(){winbtnprevnewDIYButton();winbtnprev。setBounds(len,3,40,40);winbtnprev。setIcon(newImageIcon(iconwinbtnprev。png));winbtnprev。setActionCommand(prev);add(winbtnprev);winbtnplaynewDIYButton();winbtnplay。setBounds(len50,3,40,40);winbtnplay。setIcon(newImageIcon(iconwinbtnplay。png));winbtnplay。setActionCommand(play);add(winbtnplay);winbtnnextnewDIYButton();winbtnnext。setBounds(len100,3,40,40);winbtnnext。setIcon(newImageIcon(iconwinbtnnext。png));winbtnnext。setActionCommand(next);add(winbtnnext);歌名mediaNamenewJLabel();mediaName。setBounds(len165,5,300,30);mediaName。setForeground(newColor(255,255,255));add(mediaName);ratenewRate();rate。setBounds(len200,30,100,3);add(rate);setBackground(Color。gray);setLayout(null);当前时间currentTimenewJLabel(00:00);currentTime。setBounds(len165,15,50,30);currentTime。setForeground(newColor(255,255,255));add(currentTime);结束时间totalTimenewJLabel(00:00);totalTime。setBounds(len305,15,50,30);totalTime。setForeground(newColor(255,255,255));add(totalTime);playProcessSlidernewJSlider(0,100,0);playProcessSlider。setBounds(len200,20,100,24);playProcessSlider。setUI(newSliderStyle(playProcessSlider));playProcessSlider。setBackground(newColor(125,125,125));playProcessSlider。setCursor(Cursor。getPredefinedCursor(Cursor。HANDCURSOR));add(playProcessSlider);winbtnprev。addActionListener(this);winbtnplay。addActionListener(this);winbtnnext。addActionListener(this);}publicvoidactionPerformed(ActionEvente){TODOAutogeneratedmethodstubif(e。getActionCommand()prev){System。out。println(prev);}if(e。getActionCommand()play){System。out。println(play);winbtnplay。setIcon(newImageIcon(iconwinbtnpause。png));winbtnplay。setActionCommand(pause);}if(e。getActionCommand()next){System。out。println(next);}if(e。getActionCommand()pause){System。out。println(pause);winbtnplay。setIcon(newImageIcon(iconwinbtnplay。png));winbtnplay。setActionCommand(play);}}}
  效果:
  四、绘制下面区域,菜单列表按钮,声音控制条
  1、自定义音量控制条importjava。awt。Color;importjava。awt。Font;importjavax。swing。JLabel;importjavax。swing。JPanel;声音进度条publicclassVolumeextendsJPanel{privateJLabelvolume;publicVolume(){super();TODOAutogeneratedconstructorstubsetLayout(null);setBackground(newColor(255,255,255));volumenewJLabel(,JLabel。CENTER);volume。setForeground(newColor(255,255,255));volume。setVisible(true);volume。setFont(newFont(Font。DIALOG,0,25));add(volume);setVisible(true);}}
  2、自定义一个panel,存放音量控制条和菜单按钮importjava。awt。Color;importjava。awt。Cursor;importjava。awt。event。ActionEvent;importjava。awt。event。ActionListener;importjavax。swing。ImageIcon;importjavax。swing。JPanel;importjavax。swing。JSlider;importcom。byq。player。ui。component。Volume;importcom。byq。player。ui。style。SliderStyle;publicclassMainFrameBottomextendsJPanelimplementsActionListener{privateDIYButtonwinbtnlist;privateDIYButtonwinbtnvolume;privateVolumevolume;privateJSlidervolumeSlider;privateintlen10;publicMainFrameBottom(){TODOAutogeneratedconstructorstubwinbtnlistnewDIYButton();winbtnlist。setBounds(len,5,16,16);winbtnlist。setIcon(newImageIcon(iconwinbtnlist。png));winbtnlist。setActionCommand(listOff);add(winbtnlist);winbtnvolumenewDIYButton();winbtnvolume。setBounds(len180,5,16,16);winbtnvolume。setIcon(newImageIcon(iconwinbtnvolumeOn。png));winbtnvolume。setActionCommand(volumeOn);add(winbtnvolume);volumenewVolume();volume。setBounds(len200,12,100,3);add(volume);volumeSlidernewJSlider(0,100,0);volumeSlider。setValue(20);设置默认音量100volumeSlider。setBounds(len200,3,100,24);volumeSlider。setUI(newSliderStyle(volumeSlider));volumeSlider。setBackground(newColor(125,125,125));volumeSlider。setCursor(Cursor。getPredefinedCursor(Cursor。HANDCURSOR));add(volumeSlider);setBackground(Color。gray);setLayout(null);}publicvoidactionPerformed(ActionEvente){TODOAutogeneratedmethodstub}}
  效果:

A股市场牛人真正的炒股思维牛市做强势,熊市做超跌什么是牛人?一般用3句话就能描述清楚了1。有做第一的执念2。有过做第一的经验3。有过多次做第一的经验并能将其总结出来。无论做什么事情,在开始之前,都要想尽办法为这件事情赋予极其重大是时候动手了就在一个星期前,很多人可能就一个想法拔网线,卸载APP,销掉股票账户把钱还我,再也不玩啦现在可能又有了新想法其实,市场还是那个市场,国家也还是那个国家。当你的心里有很多恐惧,有很多限购取消2个月了,燕郊楼市到底有没有反弹?这些年我们的房地产市场非常火爆,因为大家发现了商品房保值增值的属性,在城市化的推动下,几亿农村人口向城市迁徙,给城市住房带来了很大的需求,这让不少人看到了楼市的投资商机,纷纷涌入到未来两年,普通人要做好资产贬值的准备?这4件事尽量不要做最近,我们也能够发现很多物价都有所上涨。不止是石油天然气等这种能源,还有一些水果蔬菜化肥饲料日用品等。这种现象不仅仅出现在我国,其他很多国家也有发生。其实出现这种状况的原因有很多,许家印出售全球第2贵豪宅?回血百亿资产全靠这些价值20亿的全球第二贵房产又要被卖了!猜猜这波倒卖许家印又能套现多少?今天的热搜大家看了吗?恒大董事会主席许家印把伦敦的豪宅挂牌出售了,挂牌价折合人民币高达20多亿元(可以买10多2022年10月20日今日鸡蛋价格此为贸易商价格非终端价格,参考蛋价今日价净重国庆节后鸡蛋现货市场走货回顾及去年与今年同期的市场走势对比分析。国庆节后本是鸡蛋的消费淡季,但不少地区的鸡蛋价格却已悄然涨至6元斤之上,64岁冯巩罕见下厨煮螃蟹!徒手下锅不怕烫,门口一堆快递盒太真实最近,冯巩本人在社交平台中晒出了自己在家煮螃蟹的视频,平时经常看见冯巩在家拍段子,真正下厨做饭的次数确实屈指可数,老艺术家的厨房并不算高级,但四处却布满了各种生活痕迹。不仅四处都搁潘石屹辞职后现身美国!参加上流人士聚会,与人交流脸上堆满笑容饿了吗?戳右边关注我们,每天给您送上最新出炉的娱乐硬核大餐!10月20日,有网友发文称在纽约上流人士聚会中看到了潘石屹,这似乎也是他辞职后的首度露面,画面曝光后引发热议。当天露面的李大钊后人现状五子女都是栋梁,长子官至正部级,孙子也很厉害本文来源公众号纪人物李大钊是我党的重要创始人之一,他的一生充满传奇色彩,始终坚持为党和国家的发展无私奉献自己,甚至最终连自己的生命都可以抛之脑后,在1927年,李大钊迫害而逝世,从米家走步机扶手版体验全家人的秋冬运动器材,轻量级养生健身关于运动,相信大部分人都有三天打鱼两天晒网的类似经历,就拿跑步来说,那挥汗如雨的画面确实很燃,但对于普遍懒癌作祟的现代人,一时的鸡血(激情)并不能化作日久的坚持。如果运动能自然,搁HiRes认证,无线耳机有高音质可言,SoundcoreLiberty3Pro体验我之前体验过声阔的多款产品,印象最深刻的莫过于SoundcoreLiberty2Pro,当时有一种格莱美大师调音,真正让我震撼了,上手后没中音色确实不同,当时喜欢了挺久。让我没想到
湖人战凯尔特人哈姆新调整!威少战术地位受威胁,浓眉责任重大前言在不同的情况下,不同的球员执行关键进攻,湖人的比赛结局可能会以不同的方式上演。上场对阵活塞的比赛,当博格达诺维奇率队迫近比分的时候,詹姆斯突破没有选择强投而是分球给外线空位的里罚款8万!西热力江3天内被官方处罚2次!CBA常规赛第十二轮,辽宁112100战胜同曦队。本场比赛,年轻的同曦队面对老牌强队,能否依旧打出强势表现,令人期待。另外,本场比赛郭艾伦迎来,张镇麟连续三场拿下20分数都颇具看点克罗地亚队何以成为加时赛之王克罗地亚队球员在比赛后庆祝胜利供图新华社又是一场加时赛点球大战的套餐组合,克罗地亚人用一场5比3的结果送夺冠大热门巴西队提前回了家。这一切和之前18决赛对垒日本时几乎如出一辙,被对郎平美国豪宅过生日!与大11岁北大教授恩爱,30岁女儿至今单身作为中国女排甚至是中国体坛的一位传奇人物,郎平不论是当运动员还是做教练,都可以说是完美无瑕。尤其在做教练时期,郎平两度入主中国女排,带领这支王者之师从低谷重回巅峰,拿到了奥运金牌,碾压大胜!伦纳德259,乔治266,塔图姆太耻辱,绿军被打回原形北京时间12月13日,NBA常规赛快船主场迎战凯尔特人,伦纳德和乔治均出战,赛前,快船15胜13负排名西部第7,而绿军21胜6负位居东部榜首,卡椒组合和双探花的较量无疑是本场最大看肖战去了二队,王曼昱要独自训练比赛,应对接下来的困难挑战头条创作挑战赛国乒结束了乒超联赛开始了,接下来的冬季训练。不过这次国乒是兵分两路,主力球员去了海南陵水训练。二队的球员去了海口训练,这个季节在南方训练是很舒适的。很多球迷也奇怪,为世界杯四大孤胆英雄C罗与内马尔已遗憾出局,仅剩两人世界杯四大孤胆英雄C罗与内马尔已遗憾出局,仅剩两人!绿茵球场上,总会有很多被人讴歌的孤胆英雄!他们作为球队的精神领袖,几乎是凭借着一己之力带领着球队不断向前!孤胆英雄其实也很无奈!尽管输掉了世界杯,英格兰还是获得了另一个奖项猫戴夫英格兰已经被淘汰出世界杯,但这并不意味着球队空手而归。卡塔尔动物福利协会表示,戴夫是一只流浪猫,在他们所住的酒店与一些球员成为朋友,他将前往英国,在那里他将被重新安置。足球运动员约打卡有好礼!吉首市启动冬季文化旅游消费季活动红网时刻新闻12月13日讯(记者向力)即将到来的元旦春节是冬季旅游项目消费旺季。随着疫情防控新十条与文旅部新版防控指南发布后,吉首市文旅行业为满足游客们的期待,火速开启促销模式,2在可可托海的冬日里畅滑,攻略已备好!提到滑雪怎能不提可可托海?超长雪季天然粉雪绝美风光一个雪场就能承包你一个冬天的快乐可可托海国际滑雪场是一家集滑雪竞技承办国内国际比赛为一体的国际滑雪场。雪场内规划建设各级雪道44条冬季,碰见这菜别错过,荤素搭配,简单省事,家人爱吃从不剩菜头条创作挑战赛转眼之间,十二月过了一半,今年也马上要结束了,今年过得超级快,最近天气突然降温,让人摸不着头脑,特别容易感冒,身体总是有气无力的,还会影响一家人的食欲。作为湖北人,平
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网