2
我正在創建Java Swing應用程序。我想添加標籤到JTextField
。當我添加標籤時,我可以搜索另一個要添加的標籤。和堆棧溢出一樣。如何將字標記添加到JTextField中?
是否有任何jar文件要做到這一點?請告訴我,如果有其他解決方案。
example image tag http://imageshack.com/a/img674/925/kQRLxw.jpg
我正在創建Java Swing應用程序。我想添加標籤到JTextField
。當我添加標籤時,我可以搜索另一個要添加的標籤。和堆棧溢出一樣。如何將字標記添加到JTextField中?
是否有任何jar文件要做到這一點?請告訴我,如果有其他解決方案。
example image tag http://imageshack.com/a/img674/925/kQRLxw.jpg
基本上你需要在添加2 jlables
到一個面板,然後將該面板添加到另一個面板。
我創建了一個名爲「Tagpanel
」的自定義面板,並將新的TagPanel添加到面板。
這就是它的樣子。你應該對你的情況使用適當的佈局。
示例代碼
public class Example extends JFrame {
static Example example;
JPanel panel;
String tagarr[] = {"swing", "java", "c++", "awt"};
public Example() {
setSize(new Dimension(500, 80));
GridBagLayout layout = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints();
setLayout(layout);
c.gridx = 0;
c.gridy = 0;
panel = new JPanel();
panel.setPreferredSize(new Dimension(400, 20));
panel.setLayout(new FlowLayout(1, 2, 2));
panel.setBackground(Color.white);
panel.setBorder(javax.swing.BorderFactory.createLineBorder(Color.magenta));
add(panel,c);
JTextField t = new JTextField("type here", 10);
t.setBorder(null);
t.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyReleased(java.awt.event.KeyEvent evt) {
tagcheck(evt);
}
private void tagcheck(KeyEvent evt) {
String s = t.getText();
if (s.length() > 0) {
for (String tag : tagarr) {
if (s.equals(tag)) {
TagPanel tagp1 = new TagPanel(s);
panel.add(tagp1, panel.getComponentCount() - 1);
t.setText("");
repaint();
revalidate();
}
}
}
}
});
panel.add(t);
setVisible(true);
}
public void removecomp(JPanel p) {
panel.remove(p);
repaint();
revalidate();
}
public static void main(String[] args) {
example = new Example();
}
}
TagPanel.java
public class TagPanel extends JPanel {
public TagPanel(String text) {
JLabel textlable = new JLabel(text);
JLabel close = new JLabel("X");
close.setOpaque(true);
close.setBackground(new Color(123, 123, 123));
textlable.setOpaque(true);
textlable.setBackground(new Color(0,185,203));
textlable.setForeground(Color.white);
setLayout(new BorderLayout());
close.addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(java.awt.event.MouseEvent evt) {
Example.example.removecomp(TagPanel.this);
}
});
add(close, BorderLayout.EAST);
add(textlable, BorderLayout.WEST);
}
}
我會用保存Jbutton將,而不是一個JTextField對於這種thiing的一個JPanel。 – 2014-11-02 03:18:41
ok thanx如何添加該關閉按鈕並使用jtextfield搜索另一個標籤? – heshjse 2014-11-02 03:21:55
面板有2個標籤一個用於文本另一個用於關閉按鈕 – 2014-11-02 03:22:39