So far, we have covered the basic programming constructs such as variables, data types, decision, loop, array and method and introduced the important concept of Object-Oriented Programming OOP. You can create high-level abstract data types called classes to mimic real-life things. These classes are self-contained and are reusable. Writing your own graphics classes and re-inventing the wheels is mission impossible! These graphics classes, developed by expert programmers, are highly complex and involve many advanced design patterns.
However, re-using them are not so difficult, if you follow the API documentation, samples and templates provided. I shall assume that you have a good grasp of OOP, including composition, inheritance, polymorphism, abstract class and interface; otherwise, read the earlier articles. I will describe another important OO concept called nested class or inner class in this article. For 3D graphics, read my 3D articles. AWT is huge! It consists of 12 packages of classes Swing is even bigger, with 18 packages of classes as of JDK 8.
Fortunately, only 2 packages - java. AWT provides a platform-independent and device-independent interface to develop graphic programs that runs on all platforms, including Windows, Mac OS X, and Unixes.
In the above figure, there are three containers: a Frame and two Panel s. A Frame is the top-level container of an AWT program. A Panel is a rectangular area used to group related GUI components in a certain layout. In the above figure, the top-level Frame contains two Panel s. There are five components: a Label providing descriptiona TextField for users to enter textand three Button s for user to trigger certain programmed actions.
In a GUI program, a component must be kept in a container. You need to identify a container to hold the components. Every container has a method called add Component c. A container say c can invoke c. For example. GUI components are also called controls e. Each GUI program has a top-level container. Secondary containers are placed inside a top-level container or another secondary container.
AWT provides these secondary containers:. As illustrated, a Container has a LayoutManager to layout the components in a certain pattern. A java. Label provides a descriptive text string. Take note that System. You could use a Label to label another component such as text field to provide a text description. These three constants are defined for specifying the alignment of the Label 's text, as used in the above constructor.
The getText and setText methods can be used to read and modify the Label 's text. Similarly, the getAlignment and setAlignment methods can be used to retrieve and modify the alignment of the text.
The dark mode beta is finally here. Change your preferences any time. Stack Overflow for Teams is a private, secure spot for you and your coworkers to find and share information. However I'm having a problem right of the bat. Just not the whole window. First of all, do not use a null layout. Let the layout manager do its job. Second of all, you need to set the background of the content pane of the JFrame instance, as such.
Learn more. Asked 8 years, 7 months ago. Active 1 month ago. Viewed 21k times. I'm just getting into GUI programming, slowly learning. I thought. Grumpy ol' Bear Grumpy ol' Bear 2 2 gold badges 14 14 silver badges 24 24 bronze badges. Active Oldest Votes. Second of all, you need to set the background of the content pane of the JFrame instance, as such myWindow. Here is an explanation of the various swing layers which may help explain this behavior: download. However you can color the ContentPane inside.
The dark mode beta is finally here. Change your preferences any time. Stack Overflow for Teams is a private, secure spot for you and your coworkers to find and share information. Retrieve the content pane for the frame and use the setBackground method inherited from Component to change the color.
This is the simplest and the correct method. All you have to do is to add this code after initComponents. That is an example RGB color, you can replace that with your desired color. If you dont know the codes of RGB colors, please search on internet Hello There I did have the same problem and after many attempts I found that the problem is that you need a Graphics Object to be able to draw, paint setBackgroundColor.
The missing part on almost all other answers is where to place the code. Then now you know it goes in paint Graphics G. You must of course import java. Color for the red color constant. I'm using netbeans ide. For me, JFrame. I used JFrame. Create a JLabel, resize it so it covers your JFrame. Pick a picture by clicking the Import to project button, then click finish. Learn more. Setting background color for a JFrame Ask Question.
Asked 10 years, 9 months ago. Active 3 months ago.This chapter shows you how you can paint your own custom drawing such as graphs, charts, drawings and, in particular, computer game avatars because you cannot find standard GUI components that meets your requirements.
I shall stress that you should try to reuse the standard GUI components as far as possible and leave custom graphics as the last resort. Nonetheless, custom graphics is crucial in game programming.
A graphics context provides the capabilities of drawing on the screen. The graphics context maintains states such as the color and font used in drawing, as well as interacting with the underlying operating system to perform the drawing.
In Java, custom painting is done via the java. Graphics class, which manages a graphics context, and provides a set of device-independent methods for drawing texts, figures and images on the screen on different platforms. The java. Graphics is an abstract class, as the actual act of drawing is system-dependent and device-dependent. Each operating platform will provide a subclass of Graphics to perform the actual drawing under the platform, but conform to the specification defined in Graphics.
These drawing methods is illustrated below. The drawXxx methods draw the outlines; while fillXxx methods fill the internal. Shapes with negative width and height will not be painted. The drawImage will be discussed later. The graphic context maintains states or attributes such as the current painting color, the current font for drawing text strings, and the current painting rectangular area called clip.
You can use the methods getColorsetColorgetFontsetFontgetClipBoundssetClip to get or set the color, font, and clip area. Any painting outside the clip area is ignored. In Java Windowing Subsystem like most of the 2D Graphics systemsthe origin 0,0 is located at the top-left corner.
You can use getX or getY to get the top-left corner x,y of this component's origin relative to its parent.
Under Swing, custom painting is usually performed by extending i. The Java Windowing Subsystem invokes calls back paintComponent g to render the JPanel by providing the current graphics context gwhich can be used to invoke the drawing methods.
Instead of a named-inner class called DrawCanvas in the previous example, you can also use an anonymous inner class for the drawing canvas, if the painting code is short.
Java Programming Tutorial
You can retrieve the Graphics context of a JComponent via the getGraphics method. This is, however, not commonly used. Under AWT, you can perform custom painting by extending java.
Canvasand override the paint Graphics g method, in a java. Frame application. Similarly, you can explicitly invoke repaint to update the graphics.
At times, we need to explicitly refresh the display e. Instead, we invoke the JComponent 's repaint method. The Windowing Subsystem will in turn call back the paintComponent with the current Graphics context and execute it in the event-dispatching thread for thread safety.
The children contained within the JComponent will also be repainted.Examples and practices described in this page don't take advantage of improvements introduced in later releases and might use technology no longer available. Use the JColorChooser class to enable users to choose from a palette of colors. A color chooser is a component that you can place anywhere within your program GUI. The source code for the program is in ColorChooserDemo.
The color chooser consists of everything within the box labeled Choose Text Color. It contains two parts, a tabbed pane and a preview panel.
The three tabs in the tabbed pane select chooser panels. The preview panel below the tabbed pane displays the currently selected color. Here is the code from the example that creates a JColorChooser instance and adds it to a container:.
The JColorChooser constructor in the previous code snippet takes a Color argument, which specifies the chooser's initially selected color. If you do not specify the initial color, then the color chooser displays Color. See the Color API documentation for a list of color constants you can use. A color chooser uses an instance of ColorSelectionModel to contain and manage the current selection. The color selection model fires a change event whenever the user changes the color in the color chooser.
The example program registers a change listener with the color selection model so that it can update the banner at the top of the window.
How to change JFrame background color in Java
The following code registers and implements the change listener:. See How to Write a Change Listener for general information about change listeners and change events. A basic color chooser, like the one used in the example program, is sufficient for many programs.
However, the color chooser API allows you to customize a color chooser by providing it with a preview panel of your own design, by adding your own chooser panels to it, or by removing existing chooser panels from the color chooser. Additionally, the JColorChooser class provides two methods that make it easy to use a color chooser within a dialog. Removing or Replacing the Preview Panel covers the first customization.
Creating a Custom Chooser Panel discusses the last two. This program also adds a button that brings up a color chooser in a dialog, which you can use to set the banner background color.Java Swing Tutorial 2 change background color of JFrame
The JColorChooser class provides two class methods to make it easy to use a color chooser in a dialog. ColorChooserDemo2 uses one of these methods, showDialogto display the background color chooser when the user clicks the Show Color Chooser Here is the single line of code from the example that brings up the background color chooser in a dialog:.
The first argument is the parent for the dialog, the second is the dialog title, and the third is the initially selected color. The dialog disappears under three conditions: the user chooses a color and clicks the OK button, the user cancels the operation with the Cancel button, or the user dismisses the dialog with a frame control.
If the user chooses a color, the showDialog method returns the new color. If the user cancels the operation or dismisses the window, the method returns null. Here is the code from the example that updates the banner background color according to the value returned by showDialog :. The dialog created by showDialog is modal. If you want a non-modal dialog, you can use JColorChooser 's createDialog method to create the dialog.That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.
How to use : Java GUI JTable - Alternate Rows/Background Color
Uses of Class java. Defines a contract between user-interface components and an assistive technology that provides access to those components. Provides a set of "lightweight" all-Java language components that, to the maximum degree possible, work the same on all platforms. Provides classes and interface for drawing specialized borders around a Swing component. Contains classes and interfaces used by the JColorChooser component.
Provides one interface and many abstract classes that Swing uses to provide its pluggable look-and-feel capabilities. Provides user interface objects built according to the Java look and feel once codenamed Metalwhich is the default look and feel. Provides user interface objects built according to the cross-platform Nimbus look and feel.
Synth is a skinnable look and feel in which all painting is delegated. Provides classes and interfaces for dealing with javax. Provides classes and interfaces that deal with editable and noneditable text components.
A class to encapsulate symbolic colors representing the color of native GUI objects on a system. Creates a new Color that is a brighter version of this Color.
Creates a new Color that is a darker version of this Color. Converts a String to an integer and returns the specified opaque Color. Creates a Color object based on the specified values for the HSB color model. Draws as much of the specified image as has already been scaled to fit inside the specified rectangle. Draws as much of the specified area of the specified image as is currently available, scaling it on the fly to fit inside the specified area of the destination drawable surface.
Sets the paint mode of this graphics context to alternate between this graphics context's current color and the new specified color. Constructs either a cyclic or acyclic GradientPaint object depending on the boolean parameter.
If the value of key is a Color return it, otherwise return null. If the value of key for the given Locale is a Color return it, otherwise return null. Creates a beveled border of the specified type, using the specified highlighting and shadowing.Sign in to comment. Sign in to answer this question. Unable to complete the action because of changes made to the page.
Reload the page to see its updated state. Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select:. Select the China site in Chinese or English for best site performance.
Other MathWorks country sites are not optimized for visits from your location. Toggle Main Navigation. Search Answers Clear Filters. Answers Support MathWorks. Search Support Clear Filters. Support Answers MathWorks. Search MathWorks. MathWorks Answers Support. Open Mobile Search. Trial software. You are now following this question You will see updates in your activity feed.
You may receive emails, depending on your notification preferences. How to change background color of GUI. Scott on 29 Oct Vote 0. Answered: hareesh h on 4 Jun I have done some searching and have found some stuff, but this code only seems to change the color of the buttons which I have inside the GUI, not the overall background of the GUI.
Any thoughts? Here's the code that changes the buttons:. Answers 2. Robert Cumming on 30 Oct Cancel Copy to Clipboard. Scott on 30 Oct Working solution. Thank you. See Also. Tags background color gui. Opportunities for recent engineering grads.
Apply Today. An Error Occurred Unable to complete the action because of changes made to the page. Select a Web Site Choose a web site to get translated content where available and see local events and offers.
Select web site.