Scrolling of images using scroll panes
sir,
i have a problem in laying the scroll bars in the frames using scrollpanes.
i want to display the images having BIL format.
so,plz help me
I stand corrected, there's no mention of this on the user guide, odd.
http://blogs.sonymobile.com/press_release/xperia-z-1-compact-best-camera-in-compact-waterproof-smart...
A clever design refinement is the new Glove Mode4 that lets you use your Xperia Z1 Compact even while wearing gloves, making it even easier to use your phone, no matter what the weather.
4 Supports maximum 2mm thickness
"I'd rather be hated for who I am, than loved for who I am not." Kurt Cobain (1967-1994)
Similar Messages
-
ImageIO image renders slow in scroll pane
Hello all, I need some help understanding the behavior of BufferedImage(s)
retrieved from ImageIO.read(). The problem I am having is weird .. I load
a PNG image via ImageIO.read(), I use it to construct an ImageIcon which
is later used in a JLabel/JScrollPane for rendering. When I attempt
to scroll the image in the scroll pane, it is very chunky and slow.
If I load the same image with ImageIcon(byte[]), there is no problem. The
image on disk is 186k, when loaded from ImageIcon(), it consumes about
10M, when loaded with ImageIO about 5M is consumed ... when I scroll,
the memory usage increase about 9 MB, which can be collected immediatly
to return to 5M.
Is ImageIO doing some fancy optimization to preserve memory, if so ... how
can I alter the settings or turn it off completly. I tried setting
ImageIO.setUseCache(false); that did nothing as far as I can tell.
The code to load the image is as follows, I am just using the default right now.
// perform base64 decoding from buffer
ByteArrayInputStream bos = new ByteArrayInputStream(decoded);
try
image = ImageIO.read(bos);
catch (IOException ioe)
}Any help would be greatly appreciated!!!
Cheers,
JodyI'm not sure if this is exactly what you are looking for but, here's code that works well for me:
private class MyJLabel extends JLabel {
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D)g;
URL imageLocation = MyJPanel.class.getResource("myImage.jpg");
Image myImage = Toolkit.getDefaultToolkit().getImage (imageLocation);
MediaTracker tracker = new MediaTracker (this);
tracker.addImage(myImage, 0);
try { tracker.waitForID(0); } catch (InterruptedException exception) { System.out.println("Image myImage.jpg wasn't loaded!"); }
g2d.drawImage(myImage, 0, 0, getWidth(), getHeight, this);
}Once I reload images using the above method, image repainting is very quick. Extend the JLabel (MyJLabel) to overwrite the paint method as above. Should work fast when you do so. You can move the image retrieving code out of the paint method and into the 'MyJLabel' constructor.
How are you painting the icon and where are you retrieving the image? Can you post more code?
Regards,
Devyn -
Putting an image in a scroll pane
This is probably a simple question for most of you, but I need a little bit of help. How do I put a picture in a scroll pane?
The problem I have is that I can load an image and display it, that works fine. However, let's say I am making a new frame (I generally use JFrames), and I want to have a scroll pane in it. Let's also say I have numerous buttons around the edges (using a BorderLayout, or something). How do I load an image, draw the image on-screen and have it so that it only shows up in the scroll pane without the scrollbars disappearing?
I try to do it now, but for some reason the scroll bars of the scroll pane never show up. I can make the entire image be displayed by dragging the window edges bigger (the normal way you make windows bigger), and then I can see the entire picture. Unfortunately, the scroll bars on the scroll pane never show up if the window is too small to display the entire image. This is very puzzling, because I really don't know what I'm doing wrong. I have tried putting a panel in the scroll pane, and drawing on the panel, but still no scroll bars show up on the scroll pane if it is not big enough to show the entire picture / panel.
I am sure that the solution is very simple, but right now that solution eludes me.There's an example in the swing tutorials that seems to me to do exactly what you want.
See if http://java.sun.com/docs/books/tutorial/uiswing/components/scrollpane.html does the job, (less the border layout and buttons of course, but that shouldn't be too hard once you get the scroll bars working).
I believe the default scrollbar policy will let the scroll bars appear only when needed based on the bounds and the preferred size.
I used the example to set up a scrolling map (still just a gif image) and it works fine. If you still have trouble, you probably need to post the relevant section of code. -
How to scroll at the bottom using scroll pane
i am having a label in which i have added a scroll pane. dynamically i will add some text to the label. the scroll bar should move to the buttom after addition of text so that the new text added should be visible.
please provide me a solution.Swap from using a JLabel to a JTextArea, then use below to set position viewed. (do this after each time you enter any text)
yourJTextArea.setCaretPosition(yourJTextArea.getText().length()); -
Selecting Multiple Images from Scroll Pane
Hi,
I am quite a newbie to Java GUI and can't find a good example on something I wish to do. I got a scroll pane which actually loaded images as a Label. I do this program to upload the images. I already manage to upload the images somehow. But now the problem is I wish to remove the images from the scroll pane. It will be something like this.
1. Try to put a check box on each JLabel with the image.
2. Select multiple JLabel images by selecting the check boxes.
3. Click on the "Remove" button will remove those JLabel Images which has a check box "checked"
What I am not too sure is,
how can I be able to detect a group of checkboxes which is checked inside the scroll pane. So that I can actually removes them from the scroll pane. Can anyone show me a good example for it?Keep the check boxes in a Collection of some sort. Iterate through it, calling isSelected() on each box.
Or, add a listener to the checkboxes so that a list of selected images is updated whenever a box is checked or unchecked.
One of these may suit better than the other depending on circumstances. -
Using pen button to scroll / pan with default drivers
Hi all,
On a previous tablet pc I owned, I was able to set the pen button to be used to scroll / pan instead of right click. Using the default Lenovo drivers, I see an option to deselect "use pen button as right click", but I don't see where I can instead choose the scrolling option. Does that require the Wacom drivers to be installed? I'm trying to avoid that, since I don't need pressure sensitivity much and I seem to be the only person on this forum whose pen + touch isn't giving me problems, so don't want to unnecessarily change drivers.
Thanks!You need to test what the SelectedIndex is before you add or subtract 1 from the SelectedIndex.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'move up through the items
If ListBox1.Items.Count > 0 Then
If ListBox1.SelectedIndex <= 0 Then
ListBox1.SelectedIndex = ListBox1.Items.Count - 1
Else
ListBox1.SelectedIndex -= 1
End If
End If
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'move down through the items
If ListBox1.Items.Count > 0 Then
If ListBox1.SelectedIndex = ListBox1.Items.Count - 1 Then
ListBox1.SelectedIndex = 0
Else
ListBox1.SelectedIndex += 1
End If
End If
End Sub
If you say it can`t be done then i`ll try it -
Use "next" and "previous" buttons in two scroll panes
Hello, I have a question about how to use next and previous buttons in two scroll panes. In fact, I plan to display two similar files (HTML) in two scroll panes seperately. the purpose is to find their differences, highlight these differences and finally traverse these differences one by one by using next and previous buttons.
To realize this function, how should I mark their differences so that next and prevous buttons can recognize their locations? does anyone have idea?
Thank you very much.Can "focus" resolve this problem? But how should I add focus to a line in one HTML files? Thank you.
-
Can't get image in the scroll pane.
I have written a program to show image in scrollpane. Image has put in the same directory of program. But Still I am not getting image in the scroll pane.
Please have a look into program and let me know where I commit mistake.
package com.lko.fx.controls;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.ScrollPane;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
* @author Upadhyay
public class ScrollPaneFx extends Application{
private Scene scene;
private Group root;
* @param args
public static void main(String args[]){
launch(args);
* @param primaryStage
* @throws Exception
@Override
public void start(Stage primaryStage) throws Exception {
root = new Group();
scene = new Scene(root, 300, 240, Color.WHITE);
scrollPaneDemo();
primaryStage.setTitle("ScrollPane Demo");
primaryStage.setScene(scene);
primaryStage.show();
private void scrollPaneDemo() {
ImageView imgView = new ImageView(new Image(this.getClass().getResourceAsStream("img.png")));
ScrollPane spane = new ScrollPane();
spane.setContent(imgView);
root.getChildren().add(spane);
Thanks in Advance!
Regards,
HimanshuOk, check whether it is the image loading or something else in your code. Is the result of the getClass().getResource() method null or not null? Once we know that we know which direction to hunt in.
Also I assume you are running in an IDE. Which one? Make sure the build picks up images. Maven for example won't pick them up from your 'src/java' directory. -
Can anyone tell me where a good tutorial might be on flash
components and how to use them.....specifically the scroll pane
component? Ive scanned some flash tutorial sites but havent really
found any that explain how to use the components flash comes with.
Thank you.Try this tutorial.
http://www.cbtcafe.com/flash/scrollpane/index.html -
Hi all,
I have been looking for an app or something to make a scrollable window for a site I am working on and realised Flash CS4 has a Scroll Pane, great!
Watched one to two tutorials and for some reason they are all CS3 but I think I can work round that but have one question.
I am making the background transparent as all I want to display is scrollable text but can I colour the scroll bar itself?
I don't want it the gray and white, I would like it coloured or better still semi transparent, glass effect looking.
Is this possible? Any ideas?
Many thanks in advance, P.Hi,
Well kinda sorted this and did find the Component Assets folder but think I messed this up by deleting or editing stuff I shouldn't.
Does anyone have any tutorials on doing a Scroll Pane in CS4 that also shows how to edit the scroll bar?
I thought this would be easy however I feel I'm making a pigs dinner out of this ;-)
Thank you. -
I have background in as3, but this is my first attempt at
building an application with classes.
I have a scrollpane that populates with an image.
MyScroll.as
public var sp:ScrollPane=new ScrollPane();
public var imagePath:String = "images/cover.jpg";
public function createScrollPane(imagePath:String):void {
sp.move(0,40);
sp.source = imagePath;
addChild(sp);
I have a navigation at the bottom that returns the image name
from an array that I want to refresh/load/source the scrollpane
with, but none will work!
SpreadNav.as
public function _loadPage(evt:MouseEvent) {
var str:String = evt.target.name;
var mySlice = str.substr(10);
myLoadImages.loadImage();
myScrollCall.reCreateScrollPane(myNpXMLToArray.highArray[mySlice]);
I also have a button generated that does reload the
scrollpane, so I know that it can replace the source.
MyScroll.as
public function setClick():void {
var refreshButton:Button = new Button();
refreshButton.emphasized = true;
refreshButton.label = "refreshPane()";
refreshButton.move(10, 10);
refreshButton.addEventListener(MouseEvent.CLICK,
clickHandler);
addChild(refreshButton);
public function clickHandler(event:MouseEvent):void {
sp.source = "images/1.jpg";
But when I try to load it from the array nothing
happens...and I have tried putting the image name right in there,
from the array, refresh, source, contentPath is old, redraw(true)
is old and I am running out of things to try
MyScroll.as
public function reCreateScrollPane(imagePath2:String):void {
//imagePath2 = "images/cover.jpg";
var url:String = "images/"+imagePath2;
trace(url);
sp.load(new URLRequest(url));
trace("scroll pane refreshed");
sp.addEventListener(ProgressEvent.PROGRESS, progressHandler);
sp.addEventListener(Event.COMPLETE, completeHandler);
sp.source = "images/"+imagePath2;
//sp.source = "images/cover.jpg";
Can anyone suggest a solution?
Thanksi wonder why i bother with this forum sometimes. i always end
up answering my own questions an hour later. so the problem was
that the testes.swf was using a startDrag function and the
scrollPane in which it resided has its startDrag set to true. i
guess you can't have both elements dragging at the same time. would
cause serious upset. so yeah, there you go. -
Pulling text from a .txt to a scroll pane or text area
Hi-
I'm sure there's a way to do this, but I'm not exactly fluent in ActionScript.
Basically, my whole website's going to be in Flash, but I want to be able to update one page (sort of a news/blog page) without having to edit the Flash file every time. I'm assuming the easiest way to do this would be to set up either a scroll pane or a text box and pull the text in from a .txt file (if there's a better way, please let me know). That way I could continue to add on to the .txt file, and Flash would always pull in the current version.
So, my issues are:
1. I have no idea where to start with the code for something like that. Is it a LoadVar? Do I physically put a scroll pane or a text area in the frame and put the action on that, or do I put the action on the frame and have it call up a text area component?
2. Will the text scroll automatically, or is that something else I would have to add in? I plan on adding to this text file for awhile, so it could end up being a lot of text over time.
3. Would I be able to format the text in the .txt at all? For instance, if I hit enter to put in a paragraph break, would that register once it's pulled into Flash, or would I have to put in an html paragraph break or something? That may be a dumb question, but as I said, I'm not exactly fluent in ActionScript (or any other programming language for that matter).
Any help is definitely appreciated!
Thanks!
-GeoffI recommend you use an xml file rather than a text file for storing your content. The main reason being that it tends to make thing more easily organizable, as well as easier to differentiate things like titles, contents, links, images, etc.
You could start off using a TextArea component if you want, just to keep things simple. If you want to format things you can use the htmlText property rather than the text proiperty when assigning your content. That will allow you more control of the presentation.
If you want to take the xml approach, you should search Google for "AS# XML tutorial" where you substitute whatever version you plan to use for the "#". If you plan to use AS3, there is a good tutorial here: http://www.gotoandlearn.com/play?id=64 -
New to Applets: Problems wiht writing to files and with scroll panes.
Hi, I've recently graduated from university and so I have limited experience in java programming and I'm having some trouble with JApplets (this is the first time I've made one). I'm trying to make a simple program that will allow users to pick one of a few background images from a list (a list of jpanels within a scroll pane) then at the click of a button will output a CSS with the background tag set to the image location. This is for use on a microsoft sharepoint site where each user has a My-Sit area which I want to be customizable.
So far I've been creating this program as an application rather than a JApplet and just having another class that extends the JApplet Class which then displays the JFrame from the GUI Class. This initially didnt work because I was trying to add a window to a container so I kept programming it as an application until I got it working before trying to convert it to a JApplet. I solved the previous problem by changing my GUI class to extend JPanel instead of JFrame and it now displays correctly but with a coupe of issues.
Firstly the applet will not create/write to the CSS file. I read that applets couldnt read/write to the users file system but they could to their own. The file I wish to write to is kept on the same machine as the applet so I'm not sure why this isn't working.
Secondly the scroll panel is no longer working properly. This worked fine when I was still running the program as an application when the GUI still extended JFrame instead of JPanel (incidentally the program no longer runs as an application in this state) but now the scroll bar does not appear. This is a problem since I want the applet to remain the same size on the page even if I decide to add more backgrounds to the list. I tried setting the applet height/width to smaller values in the html file to see if the scroll bar would appear if the area was smaller than the GUI should be, but this just meant the bottom off the applet was cut off.
Could anyone offer any suggestion as to why these thigns arnt working and how to fix them? If necessary I can post my source code here. Thanks in advance.Ok, well my program is made up of 4 classes, I hope this isnt too much to be posting. If any explaination is needed then I'll post that next. Theres lots of print lines scattered aroudn due to me trying to fix this and theres some stuff commented out from when the program used to be an application isntead of an applet.
GUI Class, this was the main class until I made a JApplet Class
public class AppletGUI extends JPanel{
*GUI Components*
//JFrames
JFrame mainGUIFrame = new JFrame();
JFrame changeBackgroundFrame = new JFrame();
//JPanels (Sub-panels are indented)
JPanel changeBackgroundJP = new JPanel(new BorderLayout());
JPanel changeBackgroundBottomJP = new JPanel(new GridLayout(1,2));
JPanel backgroundJP = new JPanel(new GridLayout(1,2));
JPanel selectBackground = new JPanel(new GridLayout(1,2));
//Jbuttons
JButton changeBackgroundJB = new JButton("Change Background");
JButton defaultStyleJB = new JButton("Reset Style");
//JLabels
JLabel changeBackgroundJL = new JLabel("Choose a Background from the Menu");
JLabel backgroundJL = new JLabel();
//JScrollPane
JScrollPane backgroundList = new JScrollPane();
JPanel backgroundListPanel = new JPanel(new GridLayout());
//Action Listeners
ButtonListener bttnLstnr = new ButtonListener();
//Controllers
CSSGenerator cssGenerator = new CSSGenerator();
Backgrounds backgroundsController = new Backgrounds();
backgroundMouseListener bgMouseListener = new backgroundMouseListener();
//Flags
Component selectedComponent = null;
*Colour Changer*
//this method is used to change the colour of a selected JP
//selected JPs have their background darkered and when a
//different JP is selected the previously seleced JP has its
//colour changed back to it's original.
public void changeColour(JPanel theJPanel, boolean isDarker){
//set selected JP to a different colour
Color tempColor = theJPanel.getBackground();
if(isDarker){
tempColor = tempColor.darker();
else{
tempColor = tempColor.brighter();
theJPanel.setBackground(tempColor);
//also find any sub-JPs and change their colour to match
int j = theJPanel.getComponents().length;
for(int i = 0; i < j; i++){
String componentType = theJPanel.getComponent(i).getClass().getSimpleName();
if(componentType.equals("JPanel")){
theJPanel.getComponent(i).setBackground(tempColor);
*Populating the GUI*
//backgroundList.add();
//Populating the Backgrounds List
*Set Component Size Method*
public void setComponentSize(Component component, int width, int height){
Dimension tempSize = new Dimension(width, height);
component.setSize(tempSize);
component.setMinimumSize(tempSize);
component.setPreferredSize(tempSize);
component.setMaximumSize(tempSize);
*Constructor*
public AppletGUI() {
//REMOVED CODE
//AppletGUI.setDefaultLookAndFeelDecorated(true);
//Component Sizes
//setComponentSize
//Adding Action Listeners to Components
System.out.println("adding actions listeners to components");
changeBackgroundJB.addActionListener(bttnLstnr);
defaultStyleJB.addActionListener(bttnLstnr);
//Populating the Change Background Menu
System.out.println("Populating the window");
backgroundsController.populateBackgroundsData();
backgroundsController.populateBackgroundsList();
//loops to add background panels to the JSP
ArrayList<JPanel> tempBackgroundsList = new ArrayList<JPanel>();
JPanel tempBGJP = new JPanel();
tempBackgroundsList = backgroundsController.getBackgroundsList();
int j = tempBackgroundsList.size();
JPanel backgroundListPanel = new JPanel(new GridLayout(j,1));
for(int i = 0; i < j; i++){
tempBGJP = tempBackgroundsList.get(i);
System.out.println("Adding to the JSP: " + tempBGJP.getName());
//Add Mouse Listener
tempBGJP.addMouseListener(bgMouseListener);
backgroundListPanel.add(tempBGJP, i);
//set viewpoing
backgroundList.setViewportView(backgroundListPanel);
/*TESTING
System.out.println("\n\n TESTING!\n Printing Content of SCROLL PANE \n");
j = tempBackgroundsList.size();
for(int i = 0; i < j; i++){
System.out.println(backgroundList.getComponent(i).getName());
changeBackgroundJP.add(changeBackgroundJL, BorderLayout.NORTH);
changeBackgroundJP.add(backgroundList, BorderLayout.CENTER);
//changeBackgroundJP.add(tempBGJP, BorderLayout.CENTER);
changeBackgroundJP.add(changeBackgroundBottomJP, BorderLayout.SOUTH);
changeBackgroundBottomJP.add(changeBackgroundJB);
changeBackgroundBottomJP.add(defaultStyleJB);
System.out.println("Finsihed populating");
//REMOVED CODE
//adding the Background Menu to the GUI and settign the GUI options
//AppletGUI.setDefaultLookAndFeelDecorated(true);
//this.setResizable(true);
//this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocation(500,500);
this.setSize(400,300);
this.add(changeBackgroundJP);
//REMOVED CODE
*Main Method*
public static void main(String[] args){
System.out.println("Creating GUI");
AppletGUI theGUI = new AppletGUI();
theGUI.setVisible(true);
System.out.println("GUI Displayed");
*Button Listener Inner Class*
public class ButtonListener implements ActionListener{
//check which button is clicked
public void actionPerformed(ActionEvent event) {
AbstractButton theButton = (AbstractButton)event.getSource();
//Default Style Button
if(theButton == defaultStyleJB){
System.out.println("Default Style Button Clicked!");
//Change Background Button
if(theButton == changeBackgroundJB){
System.out.println("Change Background Button Clicked!");
String backgroundURL = cssGenerator.getBackground();
if(backgroundURL != ""){
cssGenerator.setBackgroundChanged(true);
cssGenerator.setBackground(backgroundURL);
cssGenerator.outputCSSFile();
System.out.println("Backgroudn Changed, CSS File Written");
else{
System.out.println("No Background Selected");
*Mouse Listener Inner Class*
public class backgroundMouseListener implements MouseListener{
public void mouseClicked(MouseEvent e){
//get component
JPanel tempBackgroundJP = new JPanel();
tempBackgroundJP = (JPanel)e.getComponent();
System.out.println("Background Panel Clicked");
//change component colour
if(selectedComponent == null){
selectedComponent = tempBackgroundJP;
else{
changeColour((JPanel)selectedComponent, false);
selectedComponent = tempBackgroundJP;
changeColour((JPanel)selectedComponent, true);
//set background URL
cssGenerator.setBackground(tempBackgroundJP.getName());
public void mousePressed(MouseEvent e){
public void mouseReleased(MouseEvent e){
public void mouseEntered(MouseEvent e){
public void mouseExited(MouseEvent e){
}JApplet Class, this is what I plugged the GUI into after I made the change from Application to JApplet.
public class AppletTest extends JApplet{
public void init() {
System.out.println("Creating GUI");
AppletGUI theGUI = new AppletGUI();
theGUI.setVisible(true);
Container content = getContentPane();
content.setBackground(Color.white);
content.setLayout(new FlowLayout());
content.add(theGUI);
AppletGUI theGUI = new AppletGUI();
theGUI.setVisible(true);
setContentPane(theGUI);
System.out.println("GUI Displayed");
public static void main(String[] args){
AppletTest at = new AppletTest();
at.init();
at.start();
}The CSS Generator Class. This exists because once I have the basic program working I intend to expand upon it and add multiple tabs to the GUI, each one allowing the user to change different style options. Each style option to be changed will be changed wit ha different method in this class.
public class CSSGenerator {
//Variables
String background = "";
ArrayList<String> backgroundCSS;
//Flags
boolean backgroundChanged = false;
//Sets and Gets
//For Variables
public void setBackground(String theBackground){
background = theBackground;
public String getBackground(){
return background;
//For Flags
public void setBackgroundChanged(boolean isBackgroundChanged){
backgroundChanged = isBackgroundChanged;
public boolean getBackgroundChanged(){
return backgroundChanged;
//background generator
public ArrayList<String> backgroundGenerator(String backgroundURL){
//get the URL for the background
backgroundURL = background;
//creat a new array list of strings
ArrayList<String> backgroundCSS = new ArrayList<String>();
//add the strings for the background options to the array list
backgroundCSS.add("body");
backgroundCSS.add("{");
backgroundCSS.add("background-image: url(" + backgroundURL + ");");
backgroundCSS.add("background-color: #ff0000");
backgroundCSS.add("}");
return backgroundCSS;
//Write CSS to File
public void outputCSSFile(){
try{
//Create CSS file
System.out.print("creating file");
FileWriter cssWriter = new FileWriter("C:/Documents and Settings/Gwilym/My Documents/Applet Data/CustomStyle.css");
System.out.print("file created");
System.out.print("creating buffered writer");
BufferedWriter out = new BufferedWriter(cssWriter);
System.out.print("buffered writer created");
//check which settings have been changed
//check background flag
if(getBackgroundChanged() == true){
System.out.print("retrieving arraylist");
ArrayList<String> tempBGOptions = backgroundGenerator(getBackground());
System.out.print("arraylist retrieved");
int j = tempBGOptions.size();
for(int i = 0; i < j ; i++){
System.out.print("writing to the file");
out.write(tempBGOptions.get(i));
out.newLine();
System.out.print("written to the file");
out.close();
}catch (Exception e){//Catch exception if any
System.out.println("Error: Failed to write CSS file");
/** Creates a new instance of CSSGenerator */
public CSSGenerator() {
}The Backgrounds Class. This class exists because I didnt want there to just be a hardcoded lsit of backgrounds, I wanted it to be possible to add new ones to the list without simply lettign users upload their own images (since the intended users are kids and this sharepoint site is used for educational purposes, I dont want them uplaoded inapropraite backgrounds) but I do want the site admin to be able to add more images to the list. for this reason the backgrounds are taken from a list in a text file that will be stored in the same location as the applet, the file specifies the background name, where it is stored, and where a thumbnail image is stored.
public class Backgrounds {
//Array Lists
private ArrayList<JPanel> backgroundsList;
private ArrayList<String> backgroundsData;
//Set And Get Methods
public ArrayList getBackgroundsList(){
return backgroundsList;
//ArrayList Population Methods
public void populateBackgroundsData(){
//decalre the input streams and create a new fiel hat points to the BackgroundsData file
File backgroundsDataFile = new File("C:/Documents and Settings/Gwilym/My Documents/Applet Data/BackgroundsData.txt");
FileInputStream backgroundsFIS = null;
BufferedInputStream backgroundsBIS = null;
DataInputStream backgroundsDIS = null;
try {
backgroundsFIS = new FileInputStream(backgroundsDataFile);
backgroundsBIS = new BufferedInputStream(backgroundsFIS);
backgroundsDIS = new DataInputStream(backgroundsBIS);
backgroundsData = new ArrayList<String>();
String inputtedData = null;
//loops until it reaches the end of the file
while (backgroundsDIS.available() != 0) {
//reads in the data to be stored in an array list
inputtedData = backgroundsDIS.readLine();
backgroundsData.add(inputtedData);
//TESTING
System.out.println("\n\nTESTING: populateBackgroundsData()");
int j = backgroundsData.size();
for(int i = 0; i < j; i++){
System.out.println("Index " + i + " = " + backgroundsData.get(i));
System.out.println("\n\n");
//close all stremas
backgroundsFIS.close();
backgroundsBIS.close();
backgroundsDIS.close();
} catch (FileNotFoundException e) {
System.out.println("Error: File Not Found");
} catch (IOException e) {
System.out.println("Error: IO Exception Thrown");
public void populateBackgroundsList(){
backgroundsList = new ArrayList<JPanel>();
int j = backgroundsData.size();
System.out.println("number of backgrounds = " + j);
backgroundsList = new ArrayList<JPanel>();
for(int i = 0; i < j; i++){
String tempBackgroundData = backgroundsData.get(i);
JPanel backgroundJP = new JPanel(new GridLayout(1,2));
JLabel backgroundNameJL = new JLabel();
JLabel backgroundIconJL = new JLabel();
//split the string string and egt the background name and URL
String[] splitBGData = tempBackgroundData.split(",");
String backgroundName = splitBGData[0];
String backgroundURL = splitBGData[1];
String backgroundIcon = splitBGData[2];
System.out.println("\nbackgroundName = " + backgroundName);
System.out.println("\nbackgroundURL = " + backgroundURL);
System.out.println("\nbackgroundIcon = " + backgroundIcon + "\n");
backgroundNameJL.setText(backgroundName);
backgroundIconJL.setIcon(new javax.swing.ImageIcon(backgroundIcon));
backgroundJP.add(backgroundNameJL);
backgroundJP.add(backgroundIconJL);
backgroundJP.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
//Name the JP as the background URL so it can be found
//May be useful sicne the data file may need to contain 3 fields in future
//this is incase the preview image (icon) is different from the acctual background
//most liekly in the case of more complex ppictures rather then repeating patterns
backgroundJP.setName(backgroundURL);
//Add the JP to the Array List
backgroundsList.add(backgroundJP);
//TESTING
System.out.println("\n\nTESTING: populateBackgroundsList()");
j = backgroundsList.size();
for(int i = 0; i < j; i++){
System.out.println("Index " + i + " = " + backgroundsList.get(i));
System.out.println("\n\n");
}So thats my program so far, if theres anythign that needs clarifying then please jsut ask. Thank you very much for the help! -
Dynamic content in scroll pane component
As far as I can see, the contentPath for a scroll pane
component can only point to a movie clip in the library, not to an
instance on stage. Does this mean that the content can only be
something created during authoring with no possibility of modifying
it in Actionscript?No, I had no reply and eventually wrote my own scroll pane
solution which allows me to directly modify the pane's content with
ActionScript and update the scroll bar to reflect any change in the
content's size. I'm puzzled by the help file's example in
ScrollPane.refreshPane() because it describes a senario where:
"for example, you've loaded a form into a scroll pane and an
input property (for example, a text field) has been changed by
ActionScript. In this case, you would call refreshPane() to reload
the same form with the new values for the input properties."
Which implies that you can use ActionScript to change the
content then reload it. The help file on ScrollPane.contentPath is
not very clear about what content can be used but appears to say
that the only content types allowed are: a SWF or JPEG loaded via
its URL or a symbol in the current library. I don't see how you
could use ActionScript to change any of these. I've tried
specifying an on-stage instance as the content but that
fails. -
Specifying text font in a scroll pane
Below is a fragment of code that attempts to display text in a scroll pane. Basically this works OK, except for the following:
1. Changing the font doesn't seem to make any difference. I tried "Arial", as shown, and "Curier", the display looks identical in both cases.
2. Multiple blank spaces are replaced by a single blank space. So that "Baa baa" is displayed as "Baa baa".
I would like to be able to display messages with many lines of text in a scroll pane preserving the format if possible, which relies on the blank spaces. I hope you can suggest how to do this better.
Thans for you help.
Miguel
JLabel label = new JLabel(text);
Font font = new Font("Arial",Font.PLAIN,12);
label.setFont(font);
JScrollPane scrollPane = new JScrollPane(label);try using a textArea instead of a label and include tabs for your multiple spaces.
import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class FontTest extends JFrame {
public FontTest() {
super("Font Testing");
String text = "This is \t a \t test";
JTextArea text3 = new JTextArea();
text3.setText(text);
Font font = new Font("Courier",Font.PLAIN,12);
text3.setFont(font);
JScrollPane scrollPane = new JScrollPane(text3);
getContentPane().add(scrollPane);
setSize(400, 200);
setVisible(true);
public static void main(String[] args) {
FontTest app = new FontTest();
} -
Scroll pane not working in Internet Explorer
hi all,
I have used 'scroll pane' component in flash8 to load
external swf files into the website. Its working fine in firefox
but completely fails in Internet Explorer ! Could anyone help me to
solve this please?
here is the link
http://www.talkingpebbles.com/development/virgincomics/index.html
click
here to see the website under construction
thanks
TPI see in a lot of forums from 2004 that this is an issue !
and Macromedia hasnt done anything about it till now is surprising
and frustrating! and no help to solve it either! that is ridiculous
now!
TP
Maybe you are looking for
-
Error Message When Trying to Connect to a Video Chat
Hello, I have just purchased a new iMac, and have been trying to use iChat for a video session between me and my friend (who has a Windows XP with SP2 system). She has a webcam installed and plugged in, with the newest version of aim running. Every t
-
CreativeCloudSet-Up.exe refuses to install
Trying to fix an issue with one of my CC apps, I ran the CC cleaner tool and cleared my entire install. I downloaded Creative Cloud Desktop manager, the app that manages all installs. I click on CreativeCloudSet-Up.exe to be greeted with "There was a
-
Having issues with PDF printing in Acrobat 7 Pro
The issue I am having is when I print from adobe Acrobat 7 it prints the page really tiny in the middle of the page, I look at all the printing options and change them and get the same result. Just wondering if anyone else seen this and what I can do
-
Avoiding extra detail in plain text signtures.
When I create a plan text signature Thunderbird takes it upon iyself to add some <cr> and two dashes. I do not want this addition, it looks untidy. How do I avoid them? many thanks.
-
CCMS for monitoring for Message Bus RFCs in TCP/IP
Hi Can we do CCMS configured for Real-time Monitoring of RFCs of Message Bus in TCP/IP in sm59 Example: C_MES_AEP for C Cluster Q_MES_AEP for Q Cluster W_MES_AEP for W Cluster XXXX for W Cluster AFS XXXX any other MB Cluster Re