JLabel を含む JTextPane を保存しようとしてinsertComponent
いましたが、JTextPane を filewriter と Buffered write でテキストファイルに保存しようとすると、JLabel が表示されません。
テキストファイル内の結果は次のとおりです。
: asdasd
: adasddasdasdsd
: asdasda
: asd
: asd
: asd
: as
: daaa
: sdas
: das
: d
ここに私が書いたコードがあります:
BufferedWriter save = new BufferedWriter(new FileWriter(tempfile));
jtep.write(save);
これは、テキストがデータベースから取得される場所です。結果にジャンプします:
while(rs.next())
{
try {
final JLabel jp = new JLabel(rs.getString("username")+ "\n");
jp.setAlignmentY(0.75f);
final String usernameChat = rs.getString("username");
jp.addMouseListener(new MouseListener(){
@Override
public void mouseClicked(MouseEvent e) {}
@Override
public void mouseEntered(MouseEvent e) {
Cursor c = Cursor.getPredefinedCursor(Cursor.HAND_CURSOR);
jp.setCursor(c);
}
@Override
public void mouseExited(MouseEvent e) {
}
@Override
public void mousePressed(MouseEvent e) {
if(SwingUtilities.isRightMouseButton(e)){System.out.print("lawl");}
if(e.getClickCount() == 2)new OneToOneChat(usernameChat);
jp.setForeground(Color.BLUE);
}
@Override
public void mouseReleased(MouseEvent e) {
jp.setForeground(Color.BLACK);
}
});
jp.setFont(new Font("arial",Font.BOLD,16));
jtep.insertComponent(jp);
StyleConstants.setForeground(MainPanel.sas2, Color.BLACK);
MainPanel.sd.insertString(MainPanel.sd.getLength(), ": ", MainPanel.sas2);
StyleConstants.setForeground(MainPanel.sas,new Color(Integer.parseInt(rs.getString("color"))));
sd.insertString(sd.getLength(),rs.getString("message")+ "\n", MainPanel.sas);
Javaの結果:
kev : adasddasdasdsd
kev : asdasda
kev : asd
kev : asd
kev : asd
kev : as
kev : daaa
kev : sdas
kev : das
kev : d
JLabelがテキストファイルに表示されないのはなぜですか?それを行う方法はありますか?