Okay, so, I am trying to add a scroll bar to my text area. I have noticed that in the window builder, there's an object called JScrollBar that I can use. I have already added it into my program, however, I am having difficulties linking them to the specific text Area. (I have two different textAreas and I have created two ScrollBar objects.)
Can someone show me how to link JScrollBar to JtextArea?
Thanks!
import java.awt.*;
import javax.swing.JFrame;
import javax.swing.JTextField;
import java.awt.BorderLayout;
import javax.swing.JButton;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.SwingConstants;
import javax.swing.JTextArea;
import java.awt.SystemColor;
import javax.swing.JLabel;
import javax.swing.ImageIcon;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.JPanel;
public class HelloWorldGUI {
private JFrame frmHelloWorldProgram;
private JTextField chatBox1;
private JTextField chatBox2;
private String message;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
HelloWorldGUI window = new HelloWorldGUI();
window.frmHelloWorldProgram.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public HelloWorldGUI() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frmHelloWorldProgram = new JFrame();
frmHelloWorldProgram.setTitle("Chat with yourself");
frmHelloWorldProgram.getContentPane().setBackground(SystemColor.inactiveCaption);
frmHelloWorldProgram.getContentPane().setForeground(Color.WHITE);
frmHelloWorldProgram.setBounds(100, 100, 866, 491);
frmHelloWorldProgram.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frmHelloWorldProgram.getContentPane().setLayout(null);
JScrollBar scrollBar2 = new JScrollBar();
scrollBar2.setBounds(778, 56, 21, 253);
frmHelloWorldProgram.getContentPane().add(scrollBar2);
JScrollBar scrollBar1 = new JScrollBar();
scrollBar1.setBounds(366, 56, 21, 253);
frmHelloWorldProgram.getContentPane().add(scrollBar1);
JTextArea textArea2 = new JTextArea();
textArea2.setEditable(false);
textArea2.setBackground(SystemColor.window);
textArea2.setBounds(459, 56, 340, 253);
frmHelloWorldProgram.getContentPane().add(textArea2);
JTextArea textArea1 = new JTextArea();
textArea1.setEditable(false);
textArea1.setBackground(SystemColor.window);
textArea1.setBounds(47, 56, 340, 253);
frmHelloWorldProgram.getContentPane().add(textArea1);
chatBox1 = new JTextField();
chatBox1.setText("Please enter your text here");
chatBox1.setBounds(47, 343, 340, 22);
frmHelloWorldProgram.getContentPane().add(chatBox1);
chatBox1.setColumns(10);
chatBox2 = new JTextField();
chatBox2.setText("Please enter your text here");
chatBox2.setColumns(10);
chatBox2.setBounds(459, 343, 340, 22);
frmHelloWorldProgram.getContentPane().add(chatBox2);
JButton btnSend1 = new JButton("Send");
btnSend1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
message = chatBox1.getText();
String messageD = message + "\n";
textArea2.append(messageD);
}
});
btnSend1.setBounds(173, 389, 97, 25);
frmHelloWorldProgram.getContentPane().add(btnSend1);
JButton btnSend2 = new JButton("Send");
btnSend2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
message = chatBox2.getText();
String messageD = message + "\n";
textArea1.append(messageD);
}
});
btnSend2.setBounds(594, 389, 97, 25);
frmHelloWorldProgram.getContentPane().add(btnSend2);
JLabel lblNewLabel = new JLabel("");
lblNewLabel.setIcon(new ImageIcon(HelloWorldGUI.class.getResource("/images/Image.jpg")));
lblNewLabel.setBounds(0, 0, 848, 444);
frmHelloWorldProgram.getContentPane().add(lblNewLabel);
}
}
Instead JScrollBar you can use JScrollPane .
JTextArea textArea2 = new JTextArea();
textArea2.setEditable(false);
textArea2.setBackground(SystemColor.window);
textArea2.setBounds(459, 56, 340, 253);
//frmHelloWorldProgram.getContentPane().add(textArea2);
JScrollPane scrollBar2 = new JScrollPane(textArea2); // like this
scrollBar2.setBounds(778, 56, 330, 240);
frmHelloWorldProgram.getContentPane().add(scrollBar2);
You can simple change this line in your code:
frmHelloWorldProgram.getContentPane().add(textArea2);
to
frmHelloWorldProgram.getContentPane().add(new JScrollPane(textArea2));
(Similarly for other text areas also)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.