Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java swing removeALL+;重新验证日期+;重新粉刷I don';我不知道如何正确使用它们_Java_Swing_Paint_Removeall - Fatal编程技术网

Java swing removeALL+;重新验证日期+;重新粉刷I don';我不知道如何正确使用它们

Java swing removeALL+;重新验证日期+;重新粉刷I don';我不知道如何正确使用它们,java,swing,paint,removeall,Java,Swing,Paint,Removeall,首先,我很抱歉成为Java、Swing和英语的noob 我读了很多章节,仍然不知道如何使用这三行 removeAll(); revalidate(), repaint(); 这是我的问题。 (正如大多数人谈论的那样) 我想刷新我的面板以删除JtextAreas,并根据组合框选择的项目放置新区域。 我创建了一个开关来实现这一点。 我尝试在不同的地方放置这些命令,但没有任何东西能正常工作 我真的很抱歉,我确实错过了一些明显的东西,但我太新手了,看不到它 这是我的代码:(我只是从我的main中调用它

首先,我很抱歉成为Java、Swing和英语的noob

我读了很多章节,仍然不知道如何使用这三行

removeAll();
revalidate(),
repaint();
这是我的问题。 (正如大多数人谈论的那样) 我想刷新我的面板以删除JtextAreas,并根据组合框选择的项目放置新区域。 我创建了一个开关来实现这一点。 我尝试在不同的地方放置这些命令,但没有任何东西能正常工作

我真的很抱歉,我确实错过了一些明显的东西,但我太新手了,看不到它

这是我的代码:(我只是从我的main中调用它)

公共最终类测试窗格扩展了JFrame{ 公共TestPane()引发异常{ /*********************def布局**********************/ JFrame desktop=newjframe(); 桌面设置尺寸(新尺寸(1200,200)); JPanel principalLayout=新的JPanel(); setLayout(新的GridBagLayout()); GridBagConstraints principalGrid=新的GridBagConstraints(); principalGrid.fill=GridBagConstraints.BOTH; 桌面。添加(principalLayout); /*********************合同定义**********************/ principalLayout.removeAll(); principalGrid.insets=新的插图(5,5,5,5); principalGrid.ipady=principalGrid.anchor=GridBagConstraints.CENTER; principalGrid.weightx=10; principalGrid.weighty=10; /****************网格布局******************/ 字符串[]项=新字符串[4]; 项目[0]=(“DejAffaire”); 第[1]项=(“合同”); 项目[2]=(“公里”); 第[3]项=(“出租车”); JComboBox comboChoixAdd=新的JComboBox(项目); //comboChoixAdd.addActionListener(此); JButton validaddfreis=新JButton(“valider”); //validAddFrais.addActionListener(此); JCheckBox checkKM=新JCheckBox(“附加frais kilométrique”); JCheckBox checkTaxi=新JCheckBox(“固定滑行”); JCheckBox checkDej=新的JCheckBox(“粘贴frais repas”); JCheckBox checkHotel=新JCheckBox(“afficher frais d'hébergement”); /*********ajout dans le gridBagLayout+合同************/ principalGrid.gridx=0; principalGrid.gridy=0; 添加(新JLabel(“choix du type de frais:”),principalGrid); //principalGrid.weightx=2; //principalGrid.weighty=1; principalGrid.gridx=0; principalGrid.gridy=1; 添加(comboChoixAdd,principalGrid); principalGrid.gridx=0; principalGrid.gridy=2; principalYout.add(validAddFrais,principalGrid); principalGrid.gridx=1; principalGrid.gridy=0; principalGrid.gridwidth=7; PrincipalYout.add(新JLabel(“enter les champs du frais:”),principalGrid); principalGrid.gridwidth=1; principalGrid.gridx=0; principalGrid.gridy=3; 添加(新JLabel(“affichage des frais:”),principalGrid); principalGrid.gridx=2; principalGrid.gridy=3; PrincipalYout.add(检查公里,主栅格); principalGrid.gridx=3; principalGrid.gridy=3; 添加(checkDej,principalGrid); principalGrid.gridx=4; principalGrid.gridy=3; principalyout.add(checkHotel,principalGrid); principalGrid.gridx=5; principalGrid.gridy=3; PrincipalYout.add(检查滑行,principalGrid); desktop.setTitle(“测试”); desktop.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); desktop.setVisible(true); comboChoixAdd.addActionListener(新建ActionListener(){//添加actionlistner以侦听更改 @凌驾 已执行的公共无效操作(操作事件e){ String s=(String)comboChoixAdd.getSelectedItem();//获取所选项目 开关{ “DejAffaire”案: principalGrid.gridx=1; principalGrid.gridy=1; JTextArea text=新的JTextArea(); text.setText(“测试”); 文本.立根(50,50,50,50); System.out.println(“.actionPerformed()”); 添加(文本,principalGrid); PrincipallYout.revalidate(); principalLayout.repaint(); 打破 案例“Hebergement”: principalGrid.gridx=1; principalGrid.gridy=1; JTextArea textHotel=新的JTextArea(); textHotel.setText(“azzzzzzzazazazeze”); textHotel.setBounds(50,50,50,50); System.out.println(“.actionPerformed()”); 添加(textHotel,principalGrid); //principalLayout.removeAll(); PrincipallYout.revalidate(); principalLayout.repaint(); System.out.println(“.actionPerformed()”); 打破 案例“公里”: System.out.println(“.actionPerformed()”); 打破 案例“出租车”: System.out.println(“.actionPerformed()”); 打破 } System.out.println(“.actionPerformed2()”); } }); comboChoixAdd.setSelectedItem(项目[3]); } }`
如果手动调整窗口大小,元素是否正确显示?
removeAll
,这很明显,
revalidate
触发一个新的布局过程,更新组件在容器中的大小和位置,
repaint
请求一个新的绘制周期,以便在调整其大小时绘制更改的状态。textArea没有离开我尝试了几个地方来放置这些命令,但仍然没有消失我使用的是netbeans 8.2,如果它可能有帮助的话“removeALL+revalidate+repaint,我不知道如何正确使用它们”解决这类问题的“正确”方法是使用一种使这些方法冗余的卡片布局。提示:添加@MadProgrammer(或任何人,
@
很重要)通知此人新的评论。用另一个JTextArea替换一个JTextArea有什么意义?看起来您正在这样做,只是给组件一个不同的变量名。这是完全没有必要的。只需使用setText(“”)清除旧文本区域中的文本。如果手动调整窗口大小,元素是否正确显示?
removeAll
,这很明显,
re
`public final class TestPane extends JFrame {

        public TestPane() throws ParseException {


 /********************* def layouts **********************/


JFrame desktop = new JFrame();  
desktop.setSize(new Dimension(1200, 200)); 

JPanel principalLayout = new JPanel();  
principalLayout.setLayout(new GridBagLayout()); 
GridBagConstraints  principalGrid = new GridBagConstraints();

principalGrid.fill=GridBagConstraints.BOTH;
desktop.add(principalLayout);


 /********************* def des contraintes **********************/

principalLayout.removeAll();
principalGrid.insets = new Insets(5, 5, 5, 5);
principalGrid.ipady = principalGrid.anchor = GridBagConstraints.CENTER;
principalGrid.weightx = 10;
principalGrid.weighty = 10;


 /**************** objets dans le gridBagLayout ******************/


String[] items = new String[4];
items[0] = ("DejAffaire");
items[1] = ("Hebergement");
items[2] = ("Kilometre");
    items[3] = ("Taxi");
JComboBox<String> comboChoixAdd = new JComboBox<>(items);
//comboChoixAdd.addActionListener(this);
JButton validAddFrais = new JButton("valider");
//validAddFrais.addActionListener(this);
JCheckBox checkKM = new JCheckBox("afficher frais kilométrique");
JCheckBox checkTaxi = new JCheckBox("afficher taxi");
JCheckBox checkDej = new JCheckBox("afficher frais repas");
JCheckBox checkHotel = new JCheckBox("afficher frais d'hébergement");


 /********* ajout dans le gridBagLayout + contraintes ************/


principalGrid.gridx = 0;
principalGrid.gridy = 0;
principalLayout.add(new JLabel("choix du type de frais :"), principalGrid);

//principalGrid.weightx = 2;
//principalGrid.weighty = 1;
principalGrid.gridx = 0;
principalGrid.gridy = 1;
principalLayout.add(comboChoixAdd, principalGrid);

principalGrid.gridx = 0;
principalGrid.gridy = 2;
principalLayout.add(validAddFrais, principalGrid);

principalGrid.gridx = 1;
principalGrid.gridy = 0;
principalGrid.gridwidth = 7;
principalLayout.add(new JLabel("entrer les champs du frais :"), principalGrid);

principalGrid.gridwidth = 1;
principalGrid.gridx = 0;
principalGrid.gridy = 3;
principalLayout.add(new JLabel("affichage des frais :"), principalGrid);


principalGrid.gridx = 2;
principalGrid.gridy = 3;
principalLayout.add(checkKM, principalGrid);

principalGrid.gridx = 3;
principalGrid.gridy = 3;
principalLayout.add(checkDej, principalGrid);

principalGrid.gridx = 4;
principalGrid.gridy = 3;
principalLayout.add(checkHotel, principalGrid);

principalGrid.gridx = 5;
principalGrid.gridy = 3;
principalLayout.add(checkTaxi, principalGrid);


desktop.setTitle("tests");
desktop.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
desktop.setVisible(true);




comboChoixAdd.addActionListener(new ActionListener() {//add actionlistner to listen for change
@Override
public void actionPerformed(ActionEvent e) {

    String s = (String) comboChoixAdd.getSelectedItem();//get the selected item

    switch (s) {
        case "DejAffaire":


            principalGrid.gridx = 1;
            principalGrid.gridy = 1;
            JTextArea text = new JTextArea();

            text.setText("test");
            text.setBounds(50, 50, 50, 50); 
            System.out.println(".actionPerformed()");
            principalLayout.add(text, principalGrid);
            principalLayout.revalidate();
            principalLayout.repaint();

            break;
        case "Hebergement":
            principalGrid.gridx = 1;
            principalGrid.gridy = 1;
            JTextArea textHotel = new JTextArea();

            textHotel.setText("azzzzzzzzzzzzzzzzeazeazeaze");
            textHotel.setBounds(50, 50, 50, 50); 
            System.out.println(".actionPerformed()");
            principalLayout.add(textHotel, principalGrid);
            //principalLayout.removeAll();
            principalLayout.revalidate();
            principalLayout.repaint();
            System.out.println(".actionPerformed()");
            break;
        case "Kilometre":
            System.out.println(".actionPerformed()");
            break;
        case "Taxi":
            System.out.println(".actionPerformed()");
            break;
    }
    System.out.println(".actionPerformed2()");
}
});
comboChoixAdd.setSelectedItem(items[3]);
    }




}`