Java题,编写一个JFrame窗口.......救救猫咪.jpg

Java题:编写一个JFrame窗口,要求如下: 窗口包含一个JLabel标签,一个JTextField文本框和一个JButton按钮。界面采用BorderLayout布局管理方式,其中,JLabel放在BorderLayout.CENTER区域,JTextField和JButton放在一个JPanel中,将JPanel放在BorderLayout.SOUTH区域。在文本框中输入任意文字,点击“确定”按钮,输入的内容在JLabel标签中显示,且字体为“华文行楷”,加粗(Font.BOLD),字号为40,字体颜色为Color.RED。JFrame窗口的初始大小为(600,400),显示位置为(200,300),窗口标题为“文本输入

qq_39721069
凉风i 救救孩子
一年多之前 回复

1个回答

参考代码:

https://gitee.com/00fly/effict-side/tree/master/patch-create

自行修改调试吧!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Java:JFrame.getContent().add()与JFrame.add()有什么区别。

如题,JFrame继承于containter,自己有add()方法,为何还要再在一个实例变量中新建一个containter类对象,然后再add?同样是swing方法的JPanel的add就是直接继承自containter的。

一个奇怪的JAVA问题,汉字导致JFrame.DISPOSE_ON_CLOSE无法关闭窗口

编程过程中偶然发现JFrame窗口存在点击关闭后进程未终止情况,排查之后才发现竟然是中文输入导致,即使是如下最简单程序 public static void main(String[] args) { JFrame f = new JFrame(); f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); f.setSize(700,600); f.add(new JTextArea()); f.setVisible(true); } 在JTextArea中输入英文、数字均没有影响,只要输入过中文,最后窗口便没法关闭,不管是Area、field、combobox之类的都一样,有没有大神能解决这个问题啊,太折磨人了 2020.3.3 今天尝试更换输入法后竟然发现原因是搜狗输入法造成的,更换输入法为讯飞以后没问题了,虽然问题暂时解决了,没有找到原因还是很闹心的

请问大神们Java里的JPanel.repaint和JFrame.repaint的区别是什么?

Java小白一个,在看headfirst JAVA,书上有一个小的动画代码,是每个几秒画一个圆 然后圆的位置不断变化,书上故意用了JPanel.repaint这个方法,结果产生了运动痕迹, 然后书上提出的解决方法是repaint的时候先画一个大的白色的正方形把原来的圆盖住, 然后才画下一个圆。我实践的时候突发奇想用了JFrame.repaint来代替这个 JPanel.repaint,结果发现不用像书上那样也可以消除运动轨迹。那么问题就来了: JFrame.repaint和JPanel.repaint这两个方法有什么不同呢?为什么一个可以消除痕迹一个不可以呢?JFrame.repaint做动画方面是不是更好呢?或者说什么时候不可以用它呢? 谢谢!

Exception in thread "main" java.awt.HeadlessException

請問解決以下報錯的方法: Exception in thread "main" java.awt.HeadlessException at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:204) at java.awt.Window.<init>(Window.java:536) at java.awt.Frame.<init>(Frame.java:420) at java.awt.Frame.<init>(Frame.java:385) at javax.swing.JFrame.<init>(JFrame.java:189) at com.stepforward.Mirrorworld.P4_View.Thing_Manager_View.<init>(Thing_Manager_View.java:68) at com.stepforward.Mirrorworld.P2_Base_Bean.Thing_Manager_Service.Set_visible(Thing_Manager_Service.java:33) at com.stepforward.Mirrorworld.MirrorworldApplication.main(MirrorworldApplication.java:24) 背景: 我計劃把已在開發的非web工程轉換成web工程,我打算分兩步實施:先將非web工程搬到spring boot架構上,然後再來開發表示層組件。

java 如何实现旋转JFrame窗口任意角度?

最近做窗口动画需要用到,直接旋转JFrame窗口任意角度,要直接旋转我的JFrame窗口的,不是旋转图片!

JavaJFrame窗口中组件显示问题

我在JFrame中添加了菜单栏并为菜单项添加事件(在窗口中添加一个JComponent),但是窗口中不显示! 代码如下: package frame; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.EventQueue; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.GridLayout; import java.awt.event.*; import java.awt.geom.Ellipse2D; import java.awt.geom.Line2D; import java.awt.geom.Rectangle2D; import javax.swing.*; import javax.swing.event.*; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub EventQueue.invokeLater(new Runnable() { public void run() { MenuFrame frame = new MenuFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }); } } class MenuFrame extends JFrame{ public MenuFrame() { setTitle("TraPre"); setBounds(200, 90, DEFAULT_WIDTH, DEFAULT_HEIGHT); // setLayout(null); JMenu fileMenu = new JMenu("File"); // demonstrates accelerators JMenuItem openItem = fileMenu.add(new TestAction("Open")); openItem.setAccelerator(KeyStroke.getKeyStroke("ctrl O")); fileMenu.addSeparator(); JMenu SaveMenu = new JMenu("Save "); final JMenuItem SaveTraItem = new JMenuItem("Save Tra"); SaveTraItem.setAccelerator(KeyStroke.getKeyStroke("ctrl T")); SaveMenu.add(SaveTraItem); final JMenuItem SaveEnItem = new JMenuItem("Save En"); SaveEnItem.setAccelerator(KeyStroke.getKeyStroke("ctrl E")); SaveMenu.add(SaveEnItem); fileMenu.add(SaveMenu); fileMenu.add(new AbstractAction("Exit") { public void actionPerformed(ActionEvent event) { System.exit(0); } }); fileMenu.addMenuListener(new MenuListener() { public void menuSelected(MenuEvent event) { SaveTraItem.setEnabled(false); SaveEnItem.setEnabled(false); } public void menuDeselected(MenuEvent event) {} public void menuCanceled(MenuEvent event) {} }); // demonstrate icon Action cutAction = new TestAction("Cut"); cutAction.putValue(Action.SMALL_ICON, new ImageIcon("cn.gif")); Action copyAction = new TestAction("Copy"); copyAction.putValue(Action.SMALL_ICON, new ImageIcon("nz.gif")); Action pasteAction = new TestAction("Paste"); pasteAction.putValue(Action.SMALL_ICON, new ImageIcon("gi.gif")); JMenu DrawMenu = new JMenu("画网格"); DrawMenu.add(new DrawGridAction("Input Para")); // JMenuItem ParaItem = new JMenuItem("输入参数"); // ParaItem.addActionListener(new ActionListener() // { // public void actionPerformed(ActionEvent event) // { // JComponent drawgrid = new DrawComponent(); // panel1.add(drawgrid); // JButton button = new JButton(); // add(button, BorderLayout.NORTH); // validate(); // } // }); // ParaItem.addActionListener(new DrawGridAction()); // DrawMenu.add(ParaItem); JMenu ImportDataMenu = new JMenu("导入数据"); JMenuItem SqlTraItem = new JMenuItem("从SQL导入原始记录"); JMenuItem TxtEnItem = new JMenuItem("从TXT导入轨迹序列"); ImportDataMenu.add(SqlTraItem); ImportDataMenu.add(TxtEnItem); JMenu GenerateTraMenu = new JMenu("生成轨迹"); JMenu ComputEnMenu = new JMenu("熵值计算"); JMenuItem AllTraItem = new JMenuItem("计算所有轨迹熵值"); JMenuItem OneTraItem = new JMenuItem("计算一条轨迹的不同时间段的熵值"); JMenuItem SomeTimeItem = new JMenuItem("计算所有轨迹不同时间段的熵值"); ComputEnMenu.add(AllTraItem); ComputEnMenu.add(SomeTimeItem); ComputEnMenu.add(OneTraItem); JMenu TraPreMenu = new JMenu("轨迹预测"); // demonstrate mnemonics JMenu helpMenu = new JMenu("Help"); helpMenu.setMnemonic('H'); JMenuItem indexItem = new JMenuItem("Index"); indexItem.setMnemonic('I'); helpMenu.add(indexItem); // you can also add the mnemonic key to an action Action aboutAction = new TestAction("About"); aboutAction.putValue(Action.MNEMONIC_KEY, new Integer('A')); helpMenu.add(aboutAction); // add all top-level menus to menu bar JMenuBar menuBar = new JMenuBar(); setJMenuBar(menuBar); menuBar.add(fileMenu); menuBar.add(DrawMenu); menuBar.add(ImportDataMenu); menuBar.add(GenerateTraMenu); menuBar.add(ComputEnMenu); menuBar.add(TraPreMenu); menuBar.add(helpMenu); // demonstrate pop-ups popup = new JPopupMenu(); popup.add(cutAction); popup.add(copyAction); popup.add(pasteAction); JPanel panel = new JPanel(); panel.setComponentPopupMenu(popup); add(panel); // the following line is a workaround for bug 4966109 panel.addMouseListener(new MouseAdapter(){}); // DrawComponent drawgrid = new DrawComponent(); // add(drawgrid); } public static final int DEFAULT_WIDTH = 900; public static final int DEFAULT_HEIGHT = 600; private JPopupMenu popup; // private DrawComponent drawgrid; class TestAction extends AbstractAction { public TestAction(String name) { super(name); } public void actionPerformed(ActionEvent event) { System.out.println(getValue(Action.NAME) + " selected."); } } class DrawGridAction extends AbstractAction{ public DrawGridAction(String name) { super(name); } public void actionPerformed(ActionEvent event) { JButton button = new JButton(); add(button, BorderLayout.SOUTH); JComponent drawgrid = new DrawComponent(); getContentPane().add(drawgrid); validate(); setVisible(true); System.out.println(getValue(Action.NAME) + " selected."); } } }

刚学Java,不知道为什么有java.lang.NullPointException

``` java import java.awt.*; import javax.swing.*; public class Example1 { public static void main(String[] argv) { var jFrame=new JFrame("Example1"); jFrame.setSize(500,300); JButton[] jButtons=new JButton[5]; jButtons[0].setText("Up"); jButtons[1].setText("Left"); jButtons[2].setText("Center"); jButtons[3].setText("Right"); jButtons[4].setText("Down"); jFrame.add(jButtons[0],BorderLayout.NORTH); jFrame.add(jButtons[1],BorderLayout.WEST); jFrame.add(jButtons[2],BorderLayout.CENTER); jFrame.add(jButtons[3],BorderLayout.EAST); jFrame.add(jButtons[4],BorderLayout.SOUTH); jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jFrame.setVisible(true); } } ``` Exception in thread "main" java.lang.NullPointerException at Example1.main(Example1.java:9) Process finished with exit code 1

Jframe组件添加或删除后怎样更新窗口?

我试过用使用Jframe.validate()可以在新增之后正确显示,但删除之后调用Jframe.validate()却不能正确显示。 Jframe.add(JComponent); Jframe.validate(); Jframe.validate()更新组件之后为什么又不在窗口上同步显示呢? 书本上的做法是 Jframe.add(JComponent); Jframe.setVisible(false); Jframe.setVisible(true); 我的问题是除了上面的做法之外,还有什么比较靠谱的做法呢? 麻烦各位指点一下,谢谢哈。

用java做聊天窗口的问题....

做了一个聊天窗口,可是只要一设置jTextArea的字体就运行不出来啦..请帮忙找找错误...谢谢.. package pack_Chat; import javax.swing.SwingUtilities; import java.awt.BorderLayout; import java.awt.Font; import javax.swing.JPanel; import javax.swing.JFrame; import javax.swing.JScrollPane; import java.awt.Dimension; import javax.swing.JTextArea; import java.awt.Rectangle; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.event.KeyEvent; import java.sql.Date; import java.text.DateFormat; import java.util.*; import java.text.* ; import javax.swing.JButton; import javax.xml.crypto.Data; import javax.swing.JLabel; import java.awt.Color; import javax.swing.JComboBox; import java.awt.List; public class Chat extends JFrame { private static final long serialVersionUID = 1L; private JPanel jContentPane = null; private JTextArea jTextArea2 = null; private JButton jButton1 = null; private JLabel jLabel1 = null; private JComboBox jComboBox1 = null; private JLabel jLabel2 = null; private JComboBox jComboBox2 = null; private JLabel jLabel3 = null; private JComboBox jComboBox3 = null; public Chat() { super(); initialize(); } private void initialize() { this.setSize(375, 364); this.setContentPane(getJContentPane()); this.setTitle("聊天室"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } private JPanel getJContentPane() { if (jContentPane == null) { jLabel3 = new JLabel(); jLabel3.setBounds(new Rectangle(159, 220, 28, 31)); jLabel3.setForeground(new Color(0, 51, 204)); jLabel3.setText("大小"); jLabel2 = new JLabel(); jLabel2.setBounds(new Rectangle(81, 220, 26, 32)); jLabel2.setForeground(new Color(0, 51, 204)); jLabel2.setText("样式"); jLabel1 = new JLabel(); jLabel1.setBounds(new Rectangle(2, 220, 26, 32)); jLabel1.setForeground(new Color(0, 51, 204)); jLabel1.setText("字体"); jContentPane = new JPanel(); jContentPane.setLayout(null); jContentPane.add(getJTextArea2(), null); jContentPane.add(getJButton1(), null); jContentPane.add(jLabel1, null); jContentPane.add(getJComboBox1(), null); jContentPane.add(jLabel2, null); jContentPane.add(getJComboBox2(), null); jContentPane.add(jLabel3, null); jContentPane.add(getJComboBox3(), null); jContentPane.add(getJScrollPane1(), null); } return jContentPane; } private JTextArea getJTextArea2() { if (jTextArea2 == null) { jTextArea2 = new JTextArea(); jTextArea2.setBounds(new Rectangle(1, 253, 282, 73)); jTextArea2.setLineWrap(true); jTextArea2.addKeyListener(new java.awt.event.KeyAdapter() { public void keyTyped(java.awt.event.KeyEvent e) { if(e.getKeyChar()==KeyEvent.VK_ENTER){ String s="你说:"+jTextArea2.getText(); String date=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime()); jTextArea1.append(date+"\n"); jTextArea1.append(s); jTextArea2.setText(""); } } }); } return jTextArea2; } private JButton getJButton1() { if (jButton1 == null) { jButton1 = new JButton(); jButton1.setBounds(new Rectangle(293, 288, 62, 32)); jButton1.setText("发送"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { String s="你说:"+jTextArea2.getText(); String date=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime()); jTextArea1.append(date+"\n"); jTextArea1.append(s+"\n"); jTextArea2.setText(""); } }); } return jButton1; } String str = "宋体"; // @jve:decl-index=0: private JComboBox getJComboBox1() { if (jComboBox1 == null) { jComboBox1 = new JComboBox(); jComboBox1.setBounds(new Rectangle(28, 220, 53, 31)); jComboBox1.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(java.awt.event.ItemEvent e) { if(e.getItem().toString()=="宋体") str="宋体"; if(e.getItem().toString()=="隶书") str="隶书"; if(e.getItem().toString()=="黑体") str="黑体"; jTextArea2.setFont(new Font(str,ss,DX)); jTextArea1.setFont(new Font(str,ss,DX));//只要加上这句就运行不出来啦(还有两句相同的在设置文字样式和大小那) } }); jComboBox1.addItem("宋体"); jComboBox1.addItem("隶书"); jComboBox1.addItem("黑体"); } return jComboBox1; } int ss=Font.PLAIN; private JComboBox getJComboBox2() { if (jComboBox2 == null) { jComboBox2 = new JComboBox(); jComboBox2.setBounds(new Rectangle(106, 220, 53, 31)); jComboBox2.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(java.awt.event.ItemEvent e) { if(e.getItem().toString()=="默认") ss=Font.PLAIN; if(e.getItem().toString()=="粗体") ss=Font.BOLD; if(e.getItem().toString()=="斜体") ss=Font.ITALIC; jTextArea2.setFont(new Font(str,ss,DX)); jTextArea1.setFont(new Font(str,ss,DX)); } }); jComboBox2.addItem("默认"); jComboBox2.addItem("粗体"); jComboBox2.addItem("斜体"); } return jComboBox2; } int DX=12; private JScrollPane jScrollPane1 = null; private JTextArea jTextArea1 = null; private JComboBox getJComboBox3() { if (jComboBox3 == null) { jComboBox3 = new JComboBox(); jComboBox3.setBounds(new Rectangle(187, 220, 53, 31)); jComboBox3.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(java.awt.event.ItemEvent e) { if(e.getItem().toString()=="12") DX=12; if(e.getItem().toString()=="24") DX=24; if(e.getItem().toString()=="36") DX=36; jTextArea2.setFont(new Font(str,ss,DX)); jTextArea1.setFont(new Font(str,ss,DX)); } }); jComboBox3.addItem("12"); jComboBox3.addItem("24"); jComboBox3.addItem("36"); } return jComboBox3; } /** * This method initializes jScrollPane1 * * @return javax.swing.JScrollPane */ private JScrollPane getJScrollPane1() { if (jScrollPane1 == null) { jScrollPane1 = new JScrollPane(); jScrollPane1.setBounds(new Rectangle(0, 0, 360, 220)); jScrollPane1.setViewportView(getJTextArea1()); } return jScrollPane1; } /** * This method initializes jTextArea1 * * @return javax.swing.JTextArea */ private JTextArea getJTextArea1() { if (jTextArea1 == null) { jTextArea1 = new JTextArea(); jTextArea1.setEditable(false); jTextArea1.setLineWrap(true); //jTextArea1.setFont(new Font(str,ss,DX)); //jTextArea1.setFont(new Font("宋体",Font.BOLD,40)); } return jTextArea1; } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { Chat thisClass=new Chat(); thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); thisClass.setVisible(true); } }); } } 下面是错误提示 Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at pack_Chat.Chat$3.itemStateChanged(Chat.java:130) at javax.swing.JComboBox.fireItemStateChanged(Unknown Source) at javax.swing.JComboBox.selectedItemChanged(Unknown Source) at javax.swing.JComboBox.contentsChanged(Unknown Source) at javax.swing.AbstractListModel.fireContentsChanged(Unknown Source) at javax.swing.DefaultComboBoxModel.setSelectedItem(Unknown Source) at javax.swing.DefaultComboBoxModel.addElement(Unknown Source) at javax.swing.JComboBox.addItem(Unknown Source) at pack_Chat.Chat.getJComboBox1(Chat.java:133) at pack_Chat.Chat.getJContentPane(Chat.java:69) at pack_Chat.Chat.initialize(Chat.java:45) at pack_Chat.Chat.<init>(Chat.java:41) at pack_Chat.Chat$6.run(Chat.java:220) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)

Java中如何动态修改JFrame的内容?

JFrame中有一个文本框、一个按钮和其他组件,通过点击按钮改变文本框中的内容,但不能改变其他组建的内容? 如何做? ![中间正方形是按钮](https://img-ask.csdn.net/upload/201705/06/1494052376_739183.png)

JAVA的Jframe图标怎么修改

![图片说明](https://img-ask.csdn.net/upload/201903/29/1553842955_581633.jpg) 试了好多种办法图标这两个替换不掉,代码如下 ``` package demo; import java.awt.BorderLayout; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import java.awt.Toolkit; public class test2 extends JFrame { private JPanel contentPane; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { test2 frame = new test2(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public test2() { setIconImage(Toolkit.getDefaultToolkit().getImage("C:\\Users\\yyj\\Desktop\\testPostOrder\\lib\\icon.jpg")); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 300); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); contentPane.setLayout(new BorderLayout(0, 0)); setContentPane(contentPane); } } ```

SWing/awt怎么把一个正在播放视频的Panel从一个Jframe移动到另外一个Jframe?

我用Java做播放器,视频不是由自己解码。所以在做全屏播放时,不能中断正在播放的视频。那么我能怎么实现???(已经试过两种方法) 1.去掉窗口的装饰后,最大化窗口和Panel。(失败。视频丢失) this.dispose(); this.setUndecorated(true); // 去掉窗口的装饰 2.把Panel从第一个Jframe上remove(),再移到另外一个没有装饰 的Jframe。(失败,视频丢失) 3.播放器使用没有装饰 的Jframe。(考虑到技术,没有试。) 刚工作,求大神赐教。越详细越好。八百里加急,。。

java中多个JFrame类如何使用同一个socket进行通信?

初学java写的模拟atm机,采用tcp协议。问题主要在客户端,我写了多个JFrame类,主界面的登陆按钮触发绑定socket并验证账号功能,但后面的其他窗口如何使用已有的socket连接?下图简要表述我的思路 ![图片说明](https://img-ask.csdn.net/upload/201604/20/1461148090_713045.jpg)

java界面布局,在jframe中添加多个jdialog

在jframe中放入多个jdialog,结果如下:![图片说明](https://img-ask.csdn.net/upload/201708/31/1504166567_4408.png)可以做到吗?

javax.swing.JFrame​ 关闭时怎么回到上一个窗口

javax.swing.JFrame​ J1; javax.swing.JFrame J2; 其中,j2是在j1中创建的,我想在J2关闭时,回到J1上,要怎么做?

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException

我的代码如下: JTabbedDemo.java import javax.swing.*; import java.awt.*; public class JTabbedDemo { public static void main(String[] args) throws Exception { //显示外观风格 UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); JFrame jframe=new JFrame("奖金状况"); jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jframe.setVisible(true); JTabbedPane tp=new JTabbedPane();//创建一个选项卡容器,将之添加到顶层容器内 jframe.setContentPane(tp); JPanel panel1=new JPanel(); JPanel panel2=new JPanel(); JPanel panel3=new JPanel(); JPanel panel4=new JPanel(); JPanel panel5=new JPanel(); //添加选项卡容器,并且设置其中每个选项卡的标签以及其是否可启用。 tp.addTab("panel1",panel1); tp.setEnabledAt(0,true); tp.setTitleAt(0,"个人收入状况"); tp.addTab("panel2",panel2); tp.setEnabledAt(1,true); tp.setTitleAt(1,"工资"); tp.addTab("panel2",panel3); tp.setEnabledAt(2,true); tp.setTitleAt(2,"奖金"); tp.addTab("panel3",panel4); tp.setEnabledAt(3,true); tp.setTitleAt(3,"津贴"); tp.addTab("panel4",panel5); tp.setEnabledAt(4,true); tp.setTitleAt(4,"社保"); //设置其大小以及其选项卡的位置方向 tp.setPreferredSize(new Dimension(800,600)); tp.setTabPlacement(JTabbedPane.TOP); //设置选项卡在容器内的显示形式 tp.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT); jframe.pack(); //创建8个标签组件,将5个中间窗口设置为流布局,并且将标签组件分别放入到其中 JLabel l1=new JLabel("工资状况"); JLabel l2=new JLabel("3000元/月"); JLabel l3=new JLabel("奖金状况"); JLabel l4=new JLabel("1500元/月"); JLabel l5=new JLabel("津贴状况"); JLabel l6=new JLabel("500元/月"); JLabel l7=new JLabel("社保状况"); JLabel l8=new JLabel("200元/月"); panel2.setLayout(new FlowLayout()); panel3.setLayout(new FlowLayout()); panel4.setLayout(new FlowLayout()); panel5.setLayout(new FlowLayout()); panel2.add(l1); panel2.add(l2); panel3.add(l3); panel3.add(l4); panel4.add(l5); panel4.add(l6); panel5.add(l7); panel5.add(l8); jframe.pack(); } } 错误信息如下: Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at javax.swing.plaf.basic.BasicTabbedPaneUI.calculateTabWidth(Unknown So urce) at javax.swing.plaf.basic.BasicTabbedPaneUI$TabbedPaneLayout.calculateTa bRects(Unknown Source) at javax.swing.plaf.basic.BasicTabbedPaneUI$TabbedPaneLayout.calculateLa youtInfo(Unknown Source) at javax.swing.plaf.basic.BasicTabbedPaneUI$TabbedPaneLayout.layoutConta iner(Unknown Source) at java.awt.Container.layout(Unknown Source) at java.awt.Container.doLayout(Unknown Source) at java.awt.Container.validateTree(Unknown Source) at java.awt.Container.validateTree(Unknown Source) at java.awt.Container.validateTree(Unknown Source) at java.awt.Container.validate(Unknown Source) at javax.swing.RepaintManager.validateInvalidComponents(Unknown Source) at javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$000(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Sour ce) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)

谁能帮我把这个代码补全,就差一点点了。java语法编写本地监控系统

package com.tz.util; import java.awt.Dimension; import java.awt.Rectangle; import java.awt.Robot; import java.awt.Toolkit; import java.awt.image.BufferedImage; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; /** *java开发本地屏幕监控系统 *@author Friend *@version v1.0 */ public class LocationScreen { public static void main(String[] args) { System.out.println("潭州Arry老师讲的真好"); try{ int choice =JOptionPane.showConfirmDialog(null,"请求控制对方电脑 ?","黄振锋要请求",JOptionPane.YES_NO_CANCEL_OPTION); if(choice==JOptionPane.NO_OPTION) { return; } JOptionPane.showInputDialog("请输入要连接的服务器ip(包括端口号)","127.0.0.1:10000"); JFrame jframe=new JFrame("潭州学院本地监控系统"); jframe.setSize(600,600);//设置窗体大小 jframe.setVisible(true);//设置窗体课件 jframe.setAlwaysOnTop(true);//设置置顶 jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//自动关闭线程 //定义方法,能够直接查询本地操作系统 Toolkit tk=Toolkit.getDefaultToolkit(); //获取屏幕的大小 Dimension dm= tk.getScreenSize(); JLabel imageLabel=new JLabel(); jframe.add(imageLabel); Robot robot=new Robot(); Rectangle rec= new Rectangle(jframe.getWidth(),0,(int)dm.getWidth()-jframe.getWidth(),(int)dm.getHeight()); BufferedImage bufImg= robot.createScreenCapture(rec); //imageLabel.setIcon(new ImageIcon(buffImg)); }catch(Exception e) { e.printStackTrace(); } } }

java swing JFrame之间 数据传递

建立了两个JFrame在java swing当中,但是怎样在两个JFrame之间传递数据,比如说JFrame1里面的一个文本框得到的数据传递到JFrame2的一个文本框中并显示出来,怎样才能实现这个功能?

java jframe弹出窗体内填写并执行几个按钮,如何实现?

如题,我希望弹出一个窗体,并在里面填写执行一些功能,而之前的父窗体在弹出窗体没关掉之前不能被点击。 希望各路大神给个指导,先谢谢了!

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

我以为我学懂了数据结构,直到看了这个导图才发现,我错了

数据结构与算法思维导图

String s = new String(" a ") 到底产生几个对象?

老生常谈的一个梗,到2020了还在争论,你们一天天的,哎哎哎,我不是针对你一个,我是说在座的各位都是人才! 上图红色的这3个箭头,对于通过new产生一个字符串(”宜春”)时,会先去常量池中查找是否已经有了”宜春”对象,如果没有则在常量池中创建一个此字符串对象,然后堆中再创建一个常量池中此”宜春”对象的拷贝对象。 也就是说准确答案是产生了一个或两个对象,如果常量池中原来没有 ”宜春” ,就是两个。...

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

Linux面试题(2020最新版)

文章目录Linux 概述什么是LinuxUnix和Linux有什么区别?什么是 Linux 内核?Linux的基本组件是什么?Linux 的体系结构BASH和DOS之间的基本区别是什么?Linux 开机启动过程?Linux系统缺省的运行级别?Linux 使用的进程间通信方式?Linux 有哪些系统日志文件?Linux系统安装多个桌面环境有帮助吗?什么是交换空间?什么是root帐户什么是LILO?什...

将一个接口响应时间从2s优化到 200ms以内的一个案例

一、背景 在开发联调阶段发现一个接口的响应时间特别长,经常超时,囧… 本文讲讲是如何定位到性能瓶颈以及修改的思路,将该接口从 2 s 左右优化到 200ms 以内 。 二、步骤 2.1 定位 定位性能瓶颈有两个思路,一个是通过工具去监控,一个是通过经验去猜想。 2.1.1 工具监控 就工具而言,推荐使用 arthas ,用到的是 trace 命令 具体安装步骤很简单,大家自行研究。 我的使用步骤是...

学历低,无法胜任工作,大佬告诉你应该怎么做

微信上收到一位读者小涛的留言,大致的意思是自己只有高中学历,经过培训后找到了一份工作,但很难胜任,考虑要不要辞职找一份他能力可以胜任的实习工作。下面是他留言的一部分内容: 二哥,我是 2016 年高中毕业的,考上了大学但没去成,主要是因为当时家里经济条件不太允许。 打工了三年后想学一门技术,就去培训了。培训的学校比较垃圾,现在非常后悔没去正规一点的机构培训。 去年 11 月份来北京找到了一份工...

JVM内存结构和Java内存模型别再傻傻分不清了

JVM内存结构和Java内存模型都是面试的热点问题,名字看感觉都差不多,网上有些博客也都把这两个概念混着用,实际上他们之间差别还是挺大的。 通俗点说,JVM内存结构是与JVM的内部存储结构相关,而Java内存模型是与多线程编程相关,本文针对这两个总是被混用的概念展开讲解。 JVM内存结构 JVM构成 说到JVM内存结构,就不会只是说内存结构的5个分区,而是会延展到整个JVM相关的问题,所以先了解下

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

Google 与微软的浏览器之争

浏览器再现“神仙打架”。整理 | 屠敏头图 | CSDN 下载自东方 IC出品 | CSDN(ID:CSDNnews)从 IE 到 Chrome,再从 Chrome 到 Edge,微软与...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

搜狗输入法也在挑战国人的智商!

故事总是一个接着一个到来...上周写完《鲁大师已经彻底沦为一款垃圾流氓软件!》这篇文章之后,鲁大师的市场工作人员就找到了我,希望把这篇文章删除掉。经过一番沟通我先把这篇文章从公号中删除了...

85后蒋凡:28岁实现财务自由、34岁成为阿里万亿电商帝国双掌门,他的人生底层逻辑是什么?...

蒋凡是何许人也? 2017年12月27日,在入职4年时间里,蒋凡开挂般坐上了淘宝总裁位置。 为此,时任阿里CEO张勇在任命书中力赞: 蒋凡加入阿里,始终保持创业者的冲劲,有敏锐的...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

什么时候跳槽,为什么离职,你想好了么?

都是出来打工的,多为自己着想

程序员为什么千万不要瞎努力?

本文作者用对比非常鲜明的两个开发团队的故事,讲解了敏捷开发之道 —— 如果你的团队缺乏统一标准的环境,那么即使勤劳努力,不仅会极其耗时而且成果甚微,使用...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

终于懂了TCP和UDP协议区别

终于懂了TCP和UDP协议区别

立即提问
相关内容推荐