스크롤 패널 내에서 JTextArea를 사용하는 데 문제가 있습니다. 나는 텍스트 파일에서 읽을 수 있지만 내용은 모두 한 줄에 표시됩니다. 나는 여러 가지 방법을 시도하고 추가를 사용하여 라인을 깰려고했지만 성공과 함께.JTextArea가 파일 내용을 새 라인에 표시하지 않습니다.
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class SplashScreen extends JFrame implements ActionListener
{
JButton mobile;
JButton browser;
JLabel welc;
JPanel home;
File file = new File("C:\\Users\\Jimbob\\Desktop\\DisWorkspace\\TrustWizard\\welcometwo.txt");
BufferedReader reader = null;
int lines = 10;
public String read()
{
String savetext = "";
try
{
reader = new BufferedReader(new FileReader(file));
String text = null;
while((text = reader.readLine()) != null)
{
savetext += text;
}
}
catch(IOException jim)
{
jim.printStackTrace();
}
return savetext;
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource().equals(mobile))
{
MobileHome openB = new MobileHome();
this.dispose();
}
if(e.getSource().equals(browser))
{
BrowserHome openB = new BrowserHome();
this.dispose();
}
}
public SplashScreen()
{
super("Trust Wizard");
JTextArea homeText = new JTextArea(25, 30);
homeText.setText(read());
JScrollPane homeScroll = new JScrollPane(homeText);
welc = new JLabel("Welcome To The Trust Wizard");
home = new JPanel();
mobile = new JButton("Mobile Wizard");
browser = new JButton("Browser Wizard");
home.add(welc);
home.add(homeScroll);
home.add(mobile);
home.add(browser);
ImageIcon img = new ImageIcon("hand.jpg");
setIconImage(img.getImage());
mobile.addActionListener(this);
browser.addActionListener(this);
getContentPane().add(home);
home.repaint();
setSize(450, 530);
setVisible(true);
}
public static void main(String args[])
{
SplashScreen test = new SplashScreen();
}
}
:
대신, 단지 JTextArea에 API에서 제공하는 읽기() 메서드를 사용합니다. – Smit나는 스크롤 창 크기가 실제로 0x0 (또는 충분히 가까워서)가 아니므로 걱정하지 않을 것이다. 텍스트 영역에 더 큰 크기를 갖도록 열과 행 값을 부여하십시오. – MadProgrammer
'BufferedReader.readLine()'은 개행을 먹음으로써 데이터를 손상시킵니다. 다시 추가해야하지만 올바른 줄 바꿈을 추가하는지 또는 마지막 줄에 끝에 개행 문자가 있는지 모를 수 있습니다. 또는 더 나은 아직, 그 방법을 사용하지 마십시오. 데이터를 한 줄씩 읽어야 할 이유가 없습니다. 다른'read()'메소드 중 하나를 사용하십시오. –