JPanel Java中的动态JTextField

时间:2013-09-14 20:09:25

标签: java swing jpanel jtextfield

我正在做一个项目,我必须创建一个带有滚动文本的栏... 问题是我可能需要突出显示文本的背景,并且我正在考虑使用JTextField,这样我就可以为背景着色...... 我目前的问题是让JTextField出现在JPanel中......这就是我到目前为止(设计): http://i.stack.imgur.com/AdfyZ.png

enter image description here

红色矩形将显示带有消息的JTextField,绿色矩形将显示一些广告,请注意它们现在只有颜色,以确保JPanels在哪里,当程序完成时它们将变成白色,颜色将由JTextFields制作......

下一个问题,可能是移动文本,我还没有实现,但我想这将很容易,我会留下一个ideia,你告诉我,如果我走得很好,或者我应该改为更好的意识形态...... 所以,我想做一些新闻: http://i.stack.imgur.com/rH2je.jpg

enter image description here

所以,我希望我的文字从右向左,我将创建一个runnable,每10-50毫秒改变我的文本的位置一些点向左...关于文本显示即时思考创建JTextField的LinkedList,然后在面板中显示它们......

提前感谢您,如果您可以帮我在面板上显示JTextField,我会很感激,如果您能告诉我,我对移动文本的想法是否最正确... 谢谢大家的时间!

编辑:我有你的“MyPanel”代码,在框架的主要类中我有一个方法可以将MyPanel添加到我想要它们的面板......

createMsg();
 PanelMsg.repaint();
}
  public void createMsg() {
    MyPanel test = new MyPanel("teste", "1");
    PanelMsg.add(test);      
}

PanelMsg是顶级面板,问题可能是因为我没有使用任何布局,这是因为我害怕这不工作,所以我尝试免费设计。我说,我担心这不起作用,因为我需要制作文字角色,布局会阻止他们的内容......

2 个答案:

答案 0 :(得分:0)

为什么不用两个JLabel创建自己的JPanel。设置两个标签的背景。

public MyPanel extends JPanel{
private JLabel topLabel;
private JLabel bottomLabel;

MyPanel(String news, String ad){

topLabel = new JLabel(news);
bottomLabel = new JLabel(ad);

//set your layout

}

}

现在,将多个MyPanel实例添加到JPanel。

public class Main extends JPanel{
Main(){
//other stuffs
MyPanel abc = new MyPanel("Stack", "Overflow");
MyPanel xyz = new MyPanel("Hello", "World");
add(abc);
add(xyz);
//Use Flow layout
//other stuffs
}

}

答案 1 :(得分:0)

  我正在做一个项目,我必须创建一个带有一些滚动文本的栏...问题是,我可能必须突出显示文本的背景,并为我思考使用JTextField所以我可以为背景着色。 ..

我会使用JLabels。您可以设置JLabel的背景,只需使用:

label.setOpaque(true);

查看Marquee Panel以查找要为您滚动的组件。